1

私は JSF の初心者ですが、selectonemenu 項目に問題があります。たとえば、'FirstLabel' などの項目を選択すると、outputpanel が表示されます。しかし、selectone メニューは私の選択を更新しません。私はこの問題を解決します。助けてくれてありがとう。

            <p:selectOneMenu value="#{denemeView.str}" effect="fold" editable="true"  >  
                <f:selectItem itemLabel="Please choose!." itemValue="" /> 
                <f:selectItem itemLabel="FirstLabel" itemValue="1" /> 

                <f:selectItem itemLabel="SecondLabel" itemValue="2" /> 

                <p:ajax   process="@this"  update=":Form2:panel1"/>
                <p:ajax process="@this" update=":Form2:panel2"/>
            </p:selectOneMenu> 


        </p:outputPanel> 


        <p:outputPanel id="panel1" rendered="#{denemeView.str=='1'}">

            <h:outputText value="Output: * " />
            <p:inputText id="out" value="#{denemeView.islem}" />



        </p:outputPanel>

        <p:outputPanel id="panel2" rendered="#{denemeView.str=='2'}">

            <h:outputText value="True choice! " />

        </p:outputPanel>
4

1 に答える 1

1

JSF コンポーネントがrendered="false"設定されている場合、それは再描画されず (コンポーネント オブジェクトはオブジェクト ツリーに存在しません)、<p:ajax update="someId"/>またはを使用して更新することはできません<f:ajax render="someId"/>。これら 2 つのパネルを外側のパネルでラップし、それを更新する必要があります。このようなもの:

<p:ajax   process="@this"  update="outerPanel"/>
...
<p:outputPanel id="outerPanel">
 <p:outputPanel id="panel1" rendered="#{denemeView.str=='1'}">
        <h:outputText value="Output: * " />
        <p:inputText id="out" value="#{denemeView.islem}" />
 </p:outputPanel>

 <p:outputPanel id="panel2" rendered="#{denemeView.str=='2'}">
        <h:outputText value="True choice! " />
 </p:outputPanel>
</p:outputPanel>

同様の問題については、こちらを参照してください。

于 2013-08-06T08:30:29.420 に答える