这不是重复的帖子,我只是做了研究,但没有帮助。
首先,这是我的页面...为便于阅读而进行了简化。
<h:form id="treeForm">
<f:event type="preRenderView" listener="#{taskTreeBean.update}" />
<rich:tree id="tree" nodeType="#{node.type}" var="node"
value="#{taskTreeBean.rootNodes}" toggleType="client"
selectionType="ajax"
render="@all"
selectionChangeListener="#{taskTreeBean.selectionChanged}">
<rich:treeNode>
...
</rich:treeNode>
</rich:tree>
</h:form>
<h:form id="taskListTableForm">
<rich:dataTable id="taskListTable" styleClass="tasklist" keepSaved="true" value="#{taskListModel}" var="task"
rowClasses="odd-row, even-row" rows="3">
<rich:column>
...
</rich:column>
<f:facet name="footer">
<rich:dataScroller id="scroller" for="taskListTable" />
</f:facet>
</rich:dataTable>
</h:form>
当我单击某个树节点时,将呈现任务列表表单,但视图状态将消失,这使得 dataScroller 需要两次单击下一个/上一个页面,因为第一次单击是取回 ViewState 值。
我在这里检查了 JIRA - http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-790。
试过 render="@all" 或 render="treeForm, taskListTableForm",都失败了。我等不及 mojarra 发布 2.2。那么这里有什么解决方法吗?
非常感谢。JIRA 太难理解了。
编辑:还有另一个问题,如果我单击树节点,数据表中的页面会从 1 变为 2。为什么?