JSF 2.0のHtmlDataTableに問題があります。私のWebページには、h:dataTableと他のいくつかのコンテンツがあります。ユーザーがログインしている場合にのみレンダリングする必要があります。rendered = "false"、h:dataTableの内容は常に評価されます
HtmlDataTableの内容はデータベースからロードされます。ユーザーがログインしていないときはh:dataTableは表示されませんが、コンテンツは引き続き評価されます。ここで
は、Webページのコードです:私は、メソッドの呼び出しをログに記録していますgetAllXxx()メソッドで
<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>
。しかし、h:dataTable(および他のすべてのコンテンツ)がレンダリングされない場合でも、getAllXxx()メソッドは引き続き呼び出されます。
h:panelGroupの代わりにc:ifを使用しようとしました。それはうまくいくでしょうが、ログインプロセス中に問題が発生するので、これは適切な解決策ではありません。
誰でもこれを解決する方法を知っていますか?前もって感謝します。
私は同じ問題があります。私はGlassFish 3.1にデプロイしています。 – Rogach