ui:repeat タグを使用して JSF ビューで List> を反復しようとしています。次のようになります。
<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>
models パッケージにある私のクラス Item には、モデル パッケージにもある AnotherClass のオブジェクトへの参照が含まれています。デバッガーをチェックインしましたが、ビューへのリダイレクトが返される直前に、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.anotherClassにどのようにマップしていますか? ui:repeat がバグでいっぱいであることは知っていますが、この種の問題を指摘するものはありませんでした。
私がやろうとしていることを達成する他の方法はありますか? 私のプロジェクトでは Primefaces を使用しています。終わりに近づいており、さらに配信期限が近づいているため、別のライブラリに切り替えることはできません.
編集:マトリックス全体を反復する必要のない、よりエレガントなソリューションに切り替えました:
<ui:repeat value="#{myController.currentEntryPageItems}" var="item" varStatus="itemStatus">
getCurrentEntryPageItems() は、 を返すメソッドですmyController.currentEntry.pages.get(myController.currentEntryPage)
。
2D 反復が ui:repeat で実行できるかどうかを知りたいので、質問を開いたままにします。