PrimeFaces3.4を使用しています。左側のレイアウトユニットにp:layoutがp:tree
あり、中央のユニットにパネルのリストがあります。ツリー上のノードを選択/選択解除した後、パネルをレンダリング/レンダリング解除しています。一般的な構造は次のようになります。
<p:layoutUnit position="west" minSize="150" size="300">
<h:form id="tree">
<p:tree id="tree" value="#{tree.root}" var="node"
selectionMode="multiple" selection="#{tree.selectedNodes}">
<p:ajax event="select" listener="#{tree.treeSelect}" process=":main" update=":main:panels"/>
<p:ajax event="unselect" listener="#{tree.treeUnselect}" process=":main" update=":main:panels"/>
<p:treeNode>
<h:outputText value="#{node.title}" />
</p:treeNode>
</p:tree>
</h:form>
</p:layoutUnit>
<p:layoutUnit position="center" header="Panels" styleClass="noscroll">
<h:form id="main">
<p:outputPanel id="panels" styleClass="center-panels">
<!-- here go the panels -->
</p:outputPanel>
</h:form>
</p:layoutUnit>
ただし、パネルには入力フィールドが含まれています。ツリーをクリックすると入力フィールドがリセットされることに気付いたので、プロセスを追加しましたattribute
。:main
、、で試しましたが:main:panels
、@all
どれも機能していません。
そのシナリオを正しく処理するにはどうすればよいですか?PrimeFacesのバグ(機能であるバグ)では、使用中に単一のフォームを使用することはできませんp:layout
。少なくとも、これはドキュメントに記載されています。そして、複数のフォームを使用して、データを失っています。