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

时间:2012-08-29 13:58:42

标签: jsp jsf components jstl facelets

我已经阅读了许多答案和页面,但我似乎找不到类似于我自己的情况(我猜那时候,我的错误只是一个骨头问题)。

我只是想打印出一个项目列表。 c:forEach有效...但是ui:repeat没有(也没有我的primefaces datagrids / 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>

这是我的输出:

*朋友一 *朋友二 *朋友三 *
*
*

有没有人有任何见解?

1 个答案:

答案 0 :(得分:1)

给定三个空的*行,迭代因此完美无缺,但由var属性表示的每个项目由于某种原因无法解析。可能的原因之一是在视图呈现期间EL范围中的var属性中存在命名冲突,很可能是由于在同一视图中使用另一个JSF迭代组件也导致使用相同的var属性名称。给它一个不同的,唯一的名称应该解决问题,正如问题的评论中所证实的那样。