【发布时间】:2011-02-08 07:46:04
【问题描述】:
我正在考虑在同一个 Web 项目中使用 Facelets 和 JSTL。
整合这些有什么问题吗?
【问题讨论】:
我正在考虑在同一个 Web 项目中使用 Facelets 和 JSTL。
整合这些有什么问题吗?
【问题讨论】:
Facelets 克隆了一组有限的“旧”JSTL 标记,并包含在 Facelets 库中。它们都被描述为here。换句话说:Facelets 并不支持所有的 JSTL 标签/函数。
如果您想使用任何原始 JSTL 标记,但 Facelets 没有提供,那么您将前往另一个角落寻求解决方案。 JSTL sql 和xml 标签库可以完成的工作不属于视图,而是属于模型/业务逻辑。 JSTL fmt 标签库已经被 JSF 的 <f:loadBundle> 和 <f:formatXXX> 标签覆盖。 JSTL functions taglib 可以与自定义 EL 函数一样好。我在this answer 中发布了一个示例。
JSF 和原始 JSTL 库的问题在于它们不能像您对编码所期望的那样同步运行。更重要的是,JSTL 先从上到下运行页面,然后将生成的输出交给 JSF 进行进一步处理。例如使用<c:forEach> 时,这可能会导致意外结果。
【讨论】: