一尘不染

为什么我的数据在构建时可用,而在渲染时不可用?

jsp

我已经阅读了许多答案和页面,但似乎无法找到与自己的情况类似的情况(那时,我想我的错误只是一个头上的错误)。

我只是想打印出项目清单。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>

这是我的输出:

朋友一
朋友二
朋友三


有人有见识吗?


阅读 215

收藏
2020-06-08

共1个答案

一尘不染

给定三个空*行,因此迭代可以完美地进行,但是var由于某种原因无法解析该属性所表示的每个项目。可能的原因之一是var在视图渲染期间EL范围内的属性中的命名冲突,最可能是由在同一视图中使用另一个JSF迭代组件(也使用相同的var属性名称)引起的。如问题评论中所确认的,给它一个不同且唯一的名称应该可以解决该问题。

2020-06-08