この一般的な問題をどのように解決しますか?いくつかの Ajax イベント (フォーム全体ではなく) に応じていくつかのフォーム要素をレンダリングする必要があり、フォームのレイアウトを壊したくないとしましょう。ここにサンプルコードがあります
<h:form>
<h:panelGrid columns="2">
text1
<h:inputText value="asasd" />
text2
<h:inputText value="asdasd" />
<p:selectBooleanCheckbox value="#{bean.myBoolean}">
<p:ajax update="someId" listener="{bean.changeValueOfMyBoolean"} />
</p:selectBooleanCheckbox>
<h:outputText value="asdas"rendered="#{bean.myBoolean}" />
<h:inputText value="bean value" rendered="#{bean.myBoolean"} />
...few more some elements
したがって、2つのオプションしか表示されず、<h:panelGroup>
それらすべてに1つのIDを与え、内部に別のIDを作成します<h:panelGrid>
(新しくレンダリングされた要素のインデントが異なるため、フォームレイアウトが壊れます)、または各要素に異なるIDを持つ独自のpaneGroupを与えます。<p:ajax>
このようなものを使用しますupdate=id1, id2, ...
が、それも良い解決策のようには思えません。
それで、あなたのアプローチは何ですか、より良い方法はありますか?