Jsp 为什么我的数据在构建时可用,但在渲染时不可用?
我已经阅读了许多答案和页面,但我似乎找不到类似于我自己的情况(我猜,我的错误只是一个彻头彻尾的错误) 我只是想打印出一个项目清单。c:forEach的作品。。。但是ui:repeat不会(我的任何primefaces数据网格/表也不会)Jsp 为什么我的数据在构建时可用,但在渲染时不可用?,jsp,jsf,components,jstl,facelets,Jsp,Jsf,Components,Jstl,Facelets,我已经阅读了许多答案和页面,但我似乎找不到类似于我自己的情况(我猜,我的错误只是一个彻头彻尾的错误) 我只是想打印出一个项目清单。c:forEach的作品。。。但是ui:repeat不会(我的任何primefaces数据网格/表也不会) 管理我的工作列表 这是我的输出: *朋友一号 *两位朋友 *三个朋友 * * * 有人有什么见解吗?鉴于这三行是空的*行,因此迭代可以完美地工作,但由于某种原因,var属性表示的每个项都无法解析。可能的原因之一是在视图渲染期间EL范围中的var属性中
管理我的工作列表
这是我的输出:
*朋友一号*两位朋友
*三个朋友
*
*
*
有人有什么见解吗?鉴于这三行是空的
*
行,因此迭代可以完美地工作,但由于某种原因,var
属性表示的每个项都无法解析。可能的原因之一是在视图渲染期间EL范围中的var
属性中出现命名冲突,很可能是由于在同一视图中使用了另一个JSF迭代组件,该组件也使用了相同的var
属性名。正如在问题的评论中所确认的那样,给它一个不同且唯一的名称应该可以解决问题 因此,给定三个空的*
行,它会正确地迭代,但每个{friend.receivingUser.name}
都不会打印任何内容,对吗?什么appserver impl/版本?什么JSF impl/版本?如果打印{friend}
而不是{friend.receivingUser.name}
,会怎么样?如果您给
一个与
不同的var
名称,例如var=“\u-friend”
和{u-friend}
?我无法在Tomcat7.0.27上重现Mojarra 2.1.12的问题,只要支持bean和模型代码按照标准习惯用法正确编写。非常感谢!这些都是很好的建议。我能在几秒钟内解决我的问题。在我的整页。。我在两个不同的组件中使用了var=“friend”(我知道有点懒)。我使用的是Mojarra 2.1.6和Glassfish 3.1.2不客气。我已经猜到了类似的情况,但是目前为止提供的代码不可能导致这种情况(当然您的var=“friend”
将位于另一个JSF迭代组件的其他位置)。我贴出了答案。
<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>