如何在JSP中使用Facelets的ui:repeat标签?

时间:2011-08-10 04:59:09

标签: jsp jsf-2 facelets

我在JSP 2.1上使用JSF 2.0。是否有可能在JSP文件中使用Facelets的<ui:repeat>标记?

我已将JSP中的Facelets标记库导入为

<%@ taglib uri="http://java.sun.com/jsf/facelets" prefix="ui"%>

但它没有识别ui.taglib.xml附带的taglib jsf-impl.jar并在渲染时间中出错

  

org.apache.jasper.JasperException:无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:http://java.sun.com/jsf/facelets

但是这个<ui:repeat>标记在我的Facelets文件中运行正常。

1 个答案:

答案 0 :(得分:6)

那是不可能的。 Facelets是一种独特的视图技术,技术上是JSP的后继者。您不能混合它们,也不能在JSP文件中使用Facelets标记。对于JSF2,强烈建议使用Facelets而不是JSP,因为它远远优于JSP。

对于JSP,您最好的选择是使用JSTL <c:forEach>。它具有类似的语法,仅使用items属性而不是value。或者如果它需要是<ui:repeat>而不是构建时标记的渲染时标记,请考虑查看Tomahawk's <t:dataList>