2

ユーザーがselectOneMenuコンポーネントから選択した現在の値に基づいてコンポーネントをレンダリングする方法はありますか? 私の selectOneMenu コンポーネントには、smoker と non-smoker の 2 つの値で構成される列挙型が取り込まれています。ユーザーが喫煙者を選択している場合、その下にチェックボックスを表示して、ユーザーが 10、20、30+ などの 1 日に何回喫煙しているかを確認できるようにしたいと考えています。チェックボックスはレンダリング/非表示になりません。

4

1 に答える 1

8

ターゲット コンポーネントの属性でドロップダウン メニューの値を確認しrendered、共通の親を<f:ajax>. キックオフの例を次に示します。

<h:selectOneMenu value="#{bean.item}">
    <f:selectItem itemValue="one" />
    <f:selectItem itemValue="two" />
    <f:selectItem itemValue="three" />
    <f:ajax render="results" />
</h:selectOneMenu>

<h:panelGroup id="results">
    <h:panelGroup rendered="#{bean.item eq 'one'}">
        You have selected "one".
    </h:panelGroup>
    <h:panelGroup rendered="#{bean.item eq 'two'}">
        You have selected "two".
    </h:panelGroup>
    <h:panelGroup rendered="#{bean.item eq 'three'}">
        You have selected "three".
    </h:panelGroup>
</h:panelGroup>

選択した値に基づいてビジネス ロジックを実行する場合は、 を使用します<f:ajax listener>

<f:ajax listener="#{bean.changeItem}" render="results" />
public void changeItem() {
    someResult = someService.getByItem(item);
}

以下も参照してください。

于 2012-11-19T13:28:45.267 に答える