JSF:呈现的属性

  • 本文关键字:属性 JSF jsf
  • 更新时间 :
  • 英文 :


我有一个带有渲染属性的panelGroup。如果渲染的属性设置为false,为什么还要调用panelGroup中的组件值?我是否误解了此处的渲染属性?

我想做的是:我在panelGroup之前有一个selectManyCheckbox,只有当用户在selectMannCheckbox中选择了值并点击按钮时,才能执行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>

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

编辑:响应变通方法请求:

我能看到的解决此问题的最简单方法是,如果您不希望value属性调用bean方法,那么只需在呈现条件上使用if检查来包装bean方法中的逻辑。

public void loadSomething(Object someObject) {
  if (render()) {
    //Do loadSomething logic
  }
}

相关内容

  • 没有找到相关文章

最新更新