0

私のシナリオでは、ajax を使用してマネージド Bean から属性の表示タイプを変更する必要があります

<h:inputText id="text1" value="#{managedBean.value}" />
<h:selectOneRadio value="#{managedBean.option}">
    <f:selectItem itemValue="Yes" itemLabel="Yes" />
    <f:selectItem itemValue="No" itemLabel="No" />
    <f:ajax listener="#{managedBean.changeAttrDisplayType}" event="click" render="text1"/>
</h:selectOneRadio>

ラジオ ボタンで [はい] をクリックすると、属性 (id=text1) がテキスト ボックスとしてレンダリングされ、[いいえ] をクリックすると、属性 (id=text1) がラベルとしてレンダリングされます。それは可能ですか?私を案内してください...

4

1 に答える 1

2

はい!これは可能です!h:inputTextandh:outputLabelh:panelGroupajax イベントに入れ、を再レンダリングしh:panelGroupます。以下のように、レンダリングする条件をそれぞれのrendered属性に入れます。

            <h:panelGroup id="changingPanel">
                <h:outputLabel id="id1"
                              rendered="#{managedBean.option == 'Yes'}"
                              value="This is label"/>
                <h:inputText id="id2" value="#{managedBean.input}"
                              rendered="#{managedBean.option == 'No'}" />
            </h:panelGroup>

            <h:selectOneRadio value="#{managedBean.option}">
                <f:selectItem itemValue="Yes" itemLabel="Yes" />
                <f:selectItem itemValue="No" itemLabel="No" />
                <f:ajax event="click" render="changingPanel"/>
            </h:selectOneRadio>

「はい」を選択した場合と「いいえ」outputLabelを選択した場合を表示したいとします。inputText

于 2013-06-11T10:00:14.223 に答える