javax.faces.ViewState отсутствует после рендеринга ajax - PullRequest
4 голосов
/ 20 октября 2011

Это не повторяющийся пост, я только что провел исследование, но не помогаю.

Во-первых, это моя страница ... упрощена для удобного чтения.

            <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.

Tried render = "@ all" или render = "treeForm, taskListTableForm", оба не выполнены. Я не могу ждать Моджарра, чтобы выпустить 2.2. Так есть ли обходной путь здесь?

Большое спасибо. JIRA слишком сложно понять.

Отредактировано: Есть еще одна проблема, страница переходит от 1 до 2 в dataTable, если я щелкаю узел дерева. Почему?

Ответы [ 2 ]

4 голосов
/ 23 июня 2012

Я знаю, что вы, вероятно, решили эту проблему, но для дальнейшего использования этот должен предоставить решение для других.

0 голосов
/ 03 января 2012

У меня была та же проблема, и я обошел ее, заменив <f:ajax/> на <p:ajax/> из PrimeFaces 3.0.У рассматриваемой страницы нет других компонентов PrimeFaces.Я не знаю, почему это работает, но, надеюсь, так и будет в вашем случае.

...