jsf - 将 JSTL 与 Facelets 集成

标签 jsf jstl facelets

我正在考虑在同一个 Web 项目中使用 Facelets 和 JSTL。

集成这些有什么问题吗?

最佳答案

Facelets克隆了一组有限的“好旧”JSTL 标记,并将其包含在 Facelets 库中。它们都被描述为here 。换句话说:Facelets 并不支持所有 JSTL 标签/函数。

如果您想要使用任何原始 JSTL 标记,但 Facelets 未提供该标记,那么您将前往另一个角落寻求解决方案。 JSTL 可以完成的工作sqlxml 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/

相关文章:

jsf - 动态更改 JSF 组件的可见性

jsf - 执行 (Primefaces) 菜单项的 ActionListener 会导致 IllegalStateException

java - JSF 是否包含任何邮件标签或库或任何邮件功能?

jsf - Liferay Tomcat 包中的 EJB

database - 大型服务器端数据:JSON vs XML vs JSTL EL

jsf - Primefaces p :fileupload component problem

jsf - 如何创建动态 JSF 表单域

java - 如何使用 JSTL 标记检查 JSP 中的 Double.NaN?

java - 如何通过jSTL jsp读取并解析存储在request中的xml字符串

ajax - h :graphicImage is not downloaded when its value is updated through f:ajax