#jsf #jsf-2 #richfaces #viewstate #mojarra
#jsf #jsf-2 #richfaces #viewstate #mojarra
Вопрос:
Это не дублирующий пост, я только что провел исследование, но не помог.
Во-первых, это моя страница… упрощено для удобства чтения.
<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>
Когда я нажимаю на какой-либо узел дерева, форма списка задач отображается, но viewstate исчезает, из-за чего для прокрутки данных требуется два клика на следующую / предыдущую страницу, поскольку первый щелчок возвращает значение ViewState.
Я проверил JIRA здесь — http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-790 .
Пробовал render=»@all» или render=»TreeForm, taskListTableForm», оба завершились неудачей. Я не могу дождаться, когда mojarra выпустит 2.2. Итак, есть ли здесь какое-либо обходное решение?
Большое спасибо. JIRA слишком сложен для понимания.
Отредактировано: есть еще одна проблема, страница переходит с 1 на 2 в таблице данных, если я нажимаю на узел дерева. Почему?
Ответ №1:
Я знаю, что вы, вероятно, решили эту проблему, но для дальнейшего использования это должно предоставить другим решение.
Комментарии:
1. Большое спасибо, большое спасибо, этот документ объяснил всю проблему, но я должен отобразить вторую форму при отправке первой формы, я пытался создать контейнер для обеих форм, и каждая из них отображалась на нем, но безуспешно, одна форма должна отображать другую, это правило исправления
2. Спасибо, я потратил на это целый день.
Ответ №2:
У меня была такая же проблема, и я решил ее обойти, заменив <f:ajax/>
на <p:ajax/>
from PrimeFaces 3.0 . На рассматриваемой странице нет других компонентов PrimeFaces. Я не знаю, почему это работает, но, надеюсь, это будет в вашем случае.