我遇到了 JSF 2.0 的 HtmlDataTable 的问题。在我的网页上,我有 ah:dataTable 和其他一些内容,这些内容只有在用户登录时才会呈现。
HtmlDataTable 的内容是从数据库中加载的。尽管在用户未登录时不会呈现 h:dataTable,但仍会评估内容。
这是网页的代码:
<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() 方法。
我尝试使用 c:if 而不是 h:panelGroup。那会起作用,但是我在登录过程中遇到问题,所以这不是合适的解决方案。
有谁知道如何解决这一问题?提前致谢。