我已经阅读了许多答案和页面,但似乎无法找到与自己的情况类似的情况(那时,我想我的错误只是一个头上的错误)。
我只是想打印出项目清单。c:forEach可以工作…但是ui:repeat不能(我的任何primefaces datagrid / tables也不起作用)。
<html xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.prime.com.tr/ui" xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jsp/jstl/core"> <ui:composition template="/templates/pageLayout.xhtml"> <ui:define name="windowTitle">Manage my Worklists</ui:define> <ui:define name="pageContent"> <h:outputStylesheet library="css" name="puradmin-style.css" /> <h:form id="manage-worklist" prependId="false"> <br/> <c:forEach items="#{manageWorklistBean.givenAccessList}" var="friend"> <h:outputText value="* #{friend.receivingUser.name}" /> <br/> </c:forEach> <br/> <ui:repeat value="#{manageWorklistBean.givenAccessList}" var="friend"> <h:outputText value="* #{friend.receivingUser.name}" /> <br/> </ui:repeat> </h:form> </ui:define> </ui:composition> </html>
这是我的输出:
朋友一 朋友二 朋友三
有人有见识吗?
给定三个空*行,因此迭代可以完美地进行,但是var由于某种原因无法解析该属性所表示的每个项目。可能的原因之一是var在视图渲染期间EL范围内的属性中的命名冲突,最可能是由在同一视图中使用另一个JSF迭代组件(也使用相同的var属性名称)引起的。如问题评论中所确认的,给它一个不同且唯一的名称应该可以解决该问题。
*
var