a4j: included rich: dataTable afeta negativamente a4j: commandButton
Eu tenho uma configuração JSF / RichFaces com umindex.jsp
quala4j:include
s outro pedaço de código que contém umrich:dataTable
.
Inicialmente, ele é bom e a seleção de um item noindex.jsp
dropDown da lista e clicando no botão "Recuperar"a4j:commandButton
usa o feijão de apoiosetChosen
método para fazer lances no back-end. O bean de backup atualiza os membros da classe cujos getters são chamados pelos elementos de leitura do modelo em um arquivo separadocontent.jsp
qual éa4j:include
d. Meu tabPanel atualizado é exibido.
Eu posso ver a saída no console do eclipse. Mas quando eu aperto o botão novamente, nada acontece. Nada no log do tomcat 6.0 e nada no console.
EDIT1 Limitando o problema até o meucontent.jsp
arquivo e não o acimaindex.jsp
código, descobri que umrich:dataTable
elemento é o problema. Quando removo apenas esse elemento docontent.jsp
, Posso clicar novamente no botão Recuperar repetidamente e ele recarrega meu painel de guias. Assim que eu colocá-lo, o primeiro clique é aprovado e o botão clica, mas nada ocorre e o botão não desmarca.
O método que fornece orich:dataTable
com dados não deve ser suspeito, pois funciona pelo menos na primeira vez, mas ele executa apenas algumas rotinas xpath e retorna umArrayList<MyDataList>
.
Dada a edição, agora alguém pode sugerir como usarrich:dataTable
para que não cause nenhum problema? O elemento está dentro de umrich:tabPanel
que está dentro de umh:form
mas isso é tudo.
obrigado
EDIT2: Em resposta a uma solicitação comentada abaixo, a seguir é apresentada a lista de códigos afetada completa, tão breve quanto possível para reproduzir o problema. @ Damo, observe oa4j:commandButton
erich:dataTable
estão em arquivos diferentes, pois o último está no arquivo jsp, que éa4j:include
d. Observe também o<%@ taglib uri=...
referências foram removidas dos dois arquivos.
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:include
d 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>
Muito obrigado mesmo por olhar para isso.
EDIT3 Conforme solicitado, tentei encapsular oa4j:include
dentro de umh:form
. Para que o conteúdo incluído evite aninhar um formulário h:, substituí o anexoh:form
marcarcontent.jsp
com umh:panelGrid
. Quando refiz isso, o segundo clique noa4j:commandButton
ainda causou um travamento, mas verifiquei com o firebug e umPOST http://localhost:8888/index.jsf 200 13ms
ocorreu, mas a resposta estava vazia. Isso ajuda?