c:forEach在facelets中呈现为文本

时间:2012-02-22 17:57:47

标签: java jsf jstl facelets

在facelets ui:composition

中渲染jstl标签时遇到问题

我当前的xmlns导入是:

xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"

部署时,将文本呈现为

 <c:forEach> ... 

在html输出中。

我错过了依赖吗?导入不正确吗?甚至可以在facelets中使用jstl标签吗?

非常感谢!

1 个答案:

答案 0 :(得分:1)

给定的XML名称空间(注意:不是“xmlns imports”)对于JSF 2.x是正确的。但是,在JSF 1.x项目中独立使用的Facelets 1.x中,JSTL的XML命名空间不同,它不应包含/jsp路径。

xmlns:c="http://java.sun.com/jstl/core"

但是如果你实际上已经在使用JSF 2.x(在将来的JSF 2.x问题中请提及并相应标记),那么你可能正在使用一个不包含JSTL的servletcontainer,例如Apache Tomcat的。您需要单独下载JSTL并将其放在/WEB-INF/lib文件夹中。在这种情况下,xmlns:c="http://java.sun.com/jsp/jstl/core"应该有效。

另见:


不相关到具体问题,在Facelets中使用JSTL绝对是可能的。您应该只确保您真正了解JSF中JSTL等标记处理程序的生命周期。另请参阅JSTL in JSF2 Facelets... makes sense?您也可以使用Facelets自己的<ui:repeat>代码而不是<c:forEach>