【发布时间】:2012-11-14 14:02:26
【问题描述】:
我使用 primefaces 3.4.1 和 myfaces 2.1.9。
我需要有条件地在选项卡中显示一个组件。 目前我的代码看起来像这样:
<p:tab id="tab" title="tabTitle">
<h:panelGroup id="tabContent">
<componentX:component id="component1" rendered="#{not condition}" />
<componentY:component id="component2" rendered="#{condition}" />
</h:panelGroup>
</p:tab>
我自愿更改了组件和参数的名称
我的问题是这个解决方案 component1 和 component2 都被创建了。因此,如果两个组件事件从未显示,服务器将努力生成两个组件事件。
我的问题是,有没有一种(干净的)方法可以在不创建两个组件的情况下获得此渲染结果? 我用 c:if 和 c:choose 得到了相同的结果,但我的想法已经不多了。
【问题讨论】:
-
我认为需要重新设计,创建组件没有错,只要确保在不需要的情况下内部没有执行繁重的逻辑,或者您可以创建一些控制器 bean 将决定是否需要创建一些组件
-
<c:if>和<c:choose>应该这样做。请更清楚地描述具体问题。
标签: jsf primefaces rendering