【发布时间】:2011-06-14 01:20:39
【问题描述】:
我遇到了 JSF 2.0 的 HtmlDataTable 的问题。在我的网页上,我有一个 h: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。这可行,但我在登录过程中遇到问题,所以这不是合适的解决方案。
有谁知道如何解决这个问题?提前致谢。
【问题讨论】:
-
我也有同样的问题。我在 GlassFish 3.1 上进行部署。
标签: java jsf jsf-2 rendered-attribute