在还原视图阶段操作组件树

时间:2014-11-12 16:16:08

标签: jsf components

对于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

  • 的inputText
  • selectOneMenu用于
  • inputTextarea

是否可以禁止JSF使用所有三个组件构建组件树?恢复视图阶段不知道应用请求值阶段的内容,但是能够在之前解释它仍然很重要。

1 个答案:

答案 0 :(得分:1)

如果要实现此行为,请尝试在JSF组件上使用<c:if>标记而不是呈现属性

<c:if test="#{ myBean.myValue == 1 }">
      <h:inputText .../>
</c:if>

不要忘记添加命名空间定义

xmlns:c="http://java.sun.com/jstl/core"