JSF 2.0 の HtmlDataTable に問題があります。私の Web ページには、ah:dataTable と、ユーザーがログインしている場合にのみ表示されるその他のコンテンツがあります。
HtmlDataTable のコンテンツは、データベースから読み込まれます。ユーザーがログインしていない場合、h:dataTable はレンダリングされませんが、コンテンツは引き続き評価されます。
Web ページのコードは次のとおりです。
<h:panelGroup rendered="#{userBean.loggedIn}">
<h:dataTable value="#{xxxBean.allXxx}"
var="c">
<h:column>
<h:outputText value="#{c.name}"/>
</h:column>
</h:dataTable>
<!-- some other content -->
</h:panelGroup>
getAllXxx() メソッドでは、メソッドの呼び出しを記録しています。ただし、h:dataTable (および他のすべてのコンテンツ) がレンダリングされない場合でも、getAllXxx() メソッドが呼び出されます。
h:panelGroup の代わりに c:if を使用しようとしました。それは機能しますが、ログインプロセス中に問題が発生するため、これは適切な解決策ではありません.
これを修正する方法を知っている人はいますか?前もって感謝します。