我正在考虑在同一个 Web 项目中使用 Facelets 和 JSTL。
集成这些有什么问题吗?
最佳答案
Facelets克隆了一组有限的“好旧”JSTL 标记,并将其包含在 Facelets 库中。它们都被描述为here 。换句话说:Facelets 并不支持所有 JSTL 标签/函数。
如果您想要使用任何原始 JSTL 标记,但 Facelets 未提供该标记,那么您将前往另一个角落寻求解决方案。 JSTL 可以完成的工作sql和 xml taglibs 不属于 View ,而是属于模型/业务逻辑。 JSTL fmt taglib 已被 JSF 的 <f:loadBundle>
覆盖和 <f:formatXXX>
标签。 JSTL functions taglib 可以用自定义 EL 函数来完成。我在 this answer 中发布了一个示例.
JSF 和原始 JSTL 库的问题是它们没有像您期望的编码那样同步运行。更重要的是,JSTL 首先从上到下运行页面,然后将生成的输出交给 JSF 进行进一步处理。例如,使用 <c:forEach>
时,这可能会导致意外结果.
另请参阅:
关于jsf - 将 JSTL 与 Facelets 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2644462/