我正在使用JSF 2,我需要c:foreach用于某些目的.但无论我的列表有多大,c:foreach只循环一次,返回空值.我尝试了一切,我甚至在单独的.xhtml中分离了c:foreach,但它仍然给出了相同的结果.如果您需要一些代码,请询问,但我想使c:foreach至少在单独的.xhtml中工作,并且我会说它比在我的代码中也能工作.
在Web浏览器中打开页面,右键单击并查看源.你<c:forEach>在那里看到标签普通香草,对吗?它根本没有被解析和执行?这个不对.您需要确保在XML命名空间中声明了JSTL核心taglib,以便Facelets对其进行解析和执行.正确的XML名称空间声明如下:
xmlns:c="http://java.sun.com/jsp/jstl/core"
Run Code Online (Sandbox Code Playgroud)
如果您已经完成了,那么它只能意味着您在没有预安装JSTL的服务器上运行webapp.像Glassfish和JBoss AS这样的完整Java EE应用程序服务器已经捆绑了JSTL,但是像Tomcat和Jetty这样的简单servlet容器却没有.您需要下载并将JSTL库放在webapp中/WEB-INF/lib,甚至可以放在服务器自己的/lib文件夹中.
与具体问题无关,你是否清楚这<c:forEach>是一个视图构建时间标记,而不是视图渲染时间标记?如果您实际上正在寻找后者,那么您应该使用Facelets自己的<ui:repeat>标签.另请参阅JSF2 Facelets中的JSTL ......有意义吗?
| 归档时间: |
|
| 查看次数: |
2452 次 |
| 最近记录: |