JSF:呈现属性

gee*_*daa 5 jsf

我有一个带有渲染属性的panelGroup.如果render属性设置为false,为什么甚至会调用panelGroup中的组件值?我是否想念这里的渲染属性?

我想要做的是:我在panelGroup之前有一个selectManyCheckbox,只有当用户在selectManyCheckbox中选择了值并点击一个按钮时才能执行panelGroup中的所有内容.这不会像这样工作,因为panelGroup中的组件取决于用户必须在selectManyCheckbox中选择的值.

<h:selectManyCheckbox /> // for the user to choose
<h:commandButton /> // to render the panelGroup

<h:panelGroup rendered="#{someBean.render}">
  <h:dataTable value="#{someOtherBean.loadSomething(someObject)}" var="item">
    // ...
  </h:dataTable>         
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

map*_*aft 8

rendered属性简单地说明是否应在客户端DOM上呈现以下组件.这些组件仍将遵循JSF生命周期事件,并将维护托管bean的值.

编辑:响应变通办法的请求:

我可以看到解决这个,如果你不想要的价值的最简单方法属性调用bean的方法,然后,如果检查的渲染条件只包住逻辑在bean的方法有.

public void loadSomething(Object someObject) {
  if (render()) {
    //Do loadSomething logic
  }
}
Run Code Online (Sandbox Code Playgroud)