a4j: включенный rich: dataTable отрицательно влияет на a4j: commandButton

У меня есть настройки JSF / RichFaces сindex.jsp которыйa4j:includeS другой кусок кода, который содержитrich:dataTable.

Первоначально он хорошо визуализируется, и выбор элемента наindex.jspв раскрывающемся списке и нажмите «Получить»a4j:commandButton использует бобовsetChosen способ сделать это торги на серверной части. Поддерживающий компонент обновляет членов класса, чьи геттеры затем вызываются элементами чтения модели в отдельном файле.content.jsp которыйa4j:includeд. Появится моя обновленная вкладка.

Я вижу вывод в консоли Eclipse. Но когда я снова нажимаю кнопку, ничего не происходит. Ничего в журнале Tomcat 6.0 и ничего на консоли.

EDIT1 Сузить проблему до моегоcontent.jsp файл, а не вышеindex.jsp код, я обнаружил, чтоrich:dataTable Элемент это проблема. Когда я удаляю только этот элемент изcontent.jspЯ могу нажимать кнопку «Получить» снова и снова, и она перезагружает мою панель вкладок. Как только я вставлю его, первый щелчок будет в порядке, а затем кнопка будет щелкать, но ничего не происходит, и кнопка не откатывается назад.

Метод, который обеспечиваетrich:dataTable с данными не должно быть подозрительным, так как он работает по крайней мере в первый раз, но он выполняет только некоторые процедуры xpath и возвращаетArrayList<MyDataList>.

Учитывая правку, может кто-нибудь сейчас подсказать, как пользоватьсяrich:dataTable чтобы не было проблем? Элемент находится внутриrich:tabPanel который находится внутриh:form но это все.

Спасибо

EDIT2: В ответ на прокомментированный запрос ниже приведен полный список кода, который затрагивает проблему, настолько краткую, насколько будет воспроизведена проблема. @ Damo, пожалуйста, обратите внимание наa4j:commandButton а такжеrich:dataTable находятся в разных файлах, так как последний находится в файле JSP, которыйa4j:includeд. Также обратите внимание на<%@ taglib uri=... ссылки были удалены из обоих файлов.

index.jsp:

<f:loadBundle basename="messages" var="msg" />

<f:view>
    <rich:page pageTitle="MyTitle" markupType="xhtml">
    <h:outputText id="setup" value="#{MyBacking.setup}" />
        <rich:toolBar height="35" itemSeparator="line">
            <rich:toolBarGroup location="left">
                <a4j:form>
                    <a4j:outputPanel id="panel">
                        <h:outputText style="text-align: center" value="Select " />
                        <h:selectOneMenu id="nodes" value="#{MyBacking.chosen}">
                            <f:selectItems value="#{MyBacking.nodes}" />
                        </h:selectOneMenu>
                        <a4j:commandButton value="Retrieve"
                            reRender="panel,contentPanel,currNode,lastOp"
                            onclick="this.disabled=true" oncomplete="this.disabled=false" />
                    </a4j:outputPanel>
                </a4j:form>
            </rich:toolBarGroup>
        </rich:toolBar>

        <rich:panel>
            <h:panelGroup layout="block" id="contentPanel">
                <a4j:include viewId="#{MyBacking.viewId}">
                    <f:param name="targetIdParam" value="content" />
                </a4j:include>
            </h:panelGroup>
        </rich:panel>
    </rich:page>
</f:view>

a4j:included content.jsp:

<h:form id="myConfig">
    <rich:tabPanel switchType="client" rendered="true">
        <rich:tab styleClass="tab" label="Connections">
            <rich:dataTable onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
                onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
                cellpadding="0" cellspacing="0" width="100%" border="0" var="item"
                value="#{MyBacking.DataList}">
                <rich:column style="text-align:center" width="150px">
                    <h:outputText styleClass="txtBold"
                        value="#{item.info}:#{item.other}" />
                </rich:column>
            </rich:dataTable>
        </rich:tab>
    </rich:tabPanel>
</h:form>

Большое спасибо за то, что посмотрели на это.

EDIT3 Как я и просил, я попытался инкапсулироватьa4j:include в пределахh:form, Чтобы во вложенном контенте не было вложенного h: form, я заменил вмещающийh:form отметить вcontent.jsp сh:panelGrid, Когда я перезапустить это второй щелчок наa4j:commandButton все еще вызывал зависание, но я проверил с помощью firebug иPOST http://localhost:8888/index.jsf 200 13ms произошло, но ответ был пустым. Это помогает?

Ответы на вопрос(2)

Ваш ответ на вопрос