在JSF视图中迭代列表列表

时间:2012-07-06 17:53:43

标签: jsf uirepeat

我正在尝试迭代List>在我的JSF视图上使用ui:repeat标签。它看起来像这样:

<h:form>
<ui:repeat value="#{myController.currentEntry.pages}" var="page" varStatus="pageStatus">
    <p:fieldset rendered="#{myController.currentEntryPage == pageStatus.index}">
         <ui:repeat value="#{page}" var="item" varStatus="itemStatus">
              <h:outputText value="#{itemStatus.index + 1}. #{item.anotherClass.text}" />
         </ui:repeat>
    <p:fieldset>
</ui:repeat>
</h:form>

我的类Item位于模型包中,包含对AnotherClass对象的引用,也包含在models包中。我已经检查了调试器,并且在返回到我的视图的重定向之前,myController.currentEntry.pages已经很好地形成了。

但是我收到以下错误:

javax.servlet.ServletException: /my_view.xhtml @10,109 value="#{itemStatus.index + 1}. #{item.anotherClass.text}": Property 'anotherClass' not readable on type models.AnotherClass
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:422)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
    filters.Auth.doFilter(Auth.java:19)
    filters.Encoding.doFilter(Encoding.java:28)

这是什么一回事? JSF如何管理将item映射到item.anotherClass?我知道ui:重复充满了错误,但我发现的没有一个指向这种问题。

有没有其他方法可以实现我想要做的事情?我的项目使用Primefaces。它接近结束,甚至更接近交付截止日期,因此不能选择转换到另一个库。

编辑: 我已经切换到一个更优雅的解决方案,不需要我迭代整个矩阵:

<ui:repeat value="#{myController.currentEntryPageItems}" var="item" varStatus="itemStatus">

getCurrentEntryPageItems()是一个返回myController.currentEntry.pages.get(myController.currentEntryPage)的方法。

我仍然想知道是否可以用ui完成2d迭代:重复所以我将保持问题开放。

0 个答案:

没有答案