2

我已经阅读了许多答案和页面,但我似乎找不到与我自己相似的情况(我当时猜测,我的错误只是一个愚蠢的错误)。

我只是想打印出一个项目列表。c:forEach 有效...但 ui:repeat 无效(我的任何 primefaces 数据网格/表格也无效)。

<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>

这是我的输出:

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

有没有人有任何见解?

4

1 回答 1

1

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

于 2012-08-29T14:29:17.213 回答