对于Web应用程序(myfaces 2.2),我需要减少组件树以加速应用程序。我怎么能这样做?
下式给出:
由于支持bean值而呈现输入元素的复合组件
<h:dataTable value="#{myList}" var="myBean">
<h:column>
<h:inputText ... rendered="#{myBean.myValue == 1}" />
<h:selectOneMenu ... rendered="#{myBean.myValue == 2}">...</...>
<h:inputTextarea ... rendered="#{myBean.myValue == 3}" />
</h:column>
</h:dataTable>
问题:
所有组件都出现在组件树中,即使它们的呈现属性为false
是否可以禁止JSF使用所有三个组件构建组件树?恢复视图阶段不知道应用请求值阶段的内容,但是能够在之前解释它仍然很重要。
答案 0 :(得分:1)
如果要实现此行为,请尝试在JSF组件上使用<c:if>
标记而不是呈现属性
<c:if test="#{ myBean.myValue == 1 }">
<h:inputText .../>
</c:if>
不要忘记添加命名空间定义
xmlns:c="http://java.sun.com/jstl/core"