我正在使用PrimeFaces 3.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>
但是面板包含输入字段。我注意到,点击树后输入字段被重置,所以我添加了 process attribute
。我已经尝试过:main
, :main:panels
, @all
,但它们都没有起作用。
我如何才能在这种情况下正确工作?PrimeFaces bugture(一个 bug 是功能)在您使用时不允许使用单一表单p:layout
,至少在文档中说明了这一点。并且使用多种形式,我正在丢失数据。