4

実行時にjsf faceletsファイルを条件付きで含めるにはどうすればよいですか? 必要なサンプル機能は

if ( add button click) {

ui:include src="Add.xhtml"
}

if ( update button click) {

ui:include src="Update.xhtml"
}

上記の構文は単なる目安です...

Mojarra 2.1.1 / Apache Tomcat 7.0.22 / PrimeFaces 3.4

4

2 に答える 2

7

ui:includeには属性がないrenderedため、他のコンポーネントにカプセル化する必要があります。また、クリックされたボタンに基づいてサーバーにいくつかのプロパティを設定します。

<h:form>
  <p:commandButton value="Add" update=":includeContainer">
    <f:setPropertyActionListener value="add" target="#{myBean.action}"/>
  </p:commandButton>
  <p:commandButton value="Update" update=":includeContainer">
    <f:setPropertyActionListener value="update" target="#{myBean.action}"/>
  </p:commandButton>
</h:form>

<h:panelGroup id="includeContainer">
  <h:panelGroup rendered="#{myBean.action == 'add'}">
    <ui:include src="add.xhtml"/>
  </h:panelGroup>
  <h:panelGroup rendered="#{myBean.action == 'update'}">
    <ui:include src="update.xhtml"/>
  </h:panelGroup>
</h:panelGroup>

バッキング Bean には、ゲッターとセッターがあります。

public void setAction(String action) {
  this.action = action;
}

public String getAction() {
  return action;
}
于 2013-03-04T09:27:16.420 に答える