Tenho uma aplicaçao que estou fazendo, onde tenho duas situaçoes, uma teste e outra real
A Real é a seguinte.
<h:form>
<p:messages/>
<f:event type="javax.faces.event.PostAddToViewEvent"
listener="#{telaAvaliacoes.processEvent}" />
<p:dialog header="Pesquisa" widgetVar="dlg2" modal="true" height="650" width="600">
<h:outputLabel for="term" value="Código/Nome:" />
<h:inputText id="term" value="#{transacaoPesquisa.pesquisar}" />
<p:commandButton value="Buscar" action="#{transacaoPesquisa.botaoAtualiza}" update="tabela" />
<p:dataTable var="for" value="#{transacaoPesquisa.result}" id="tabela">
<f:facet name="header">
Pesquisa Fornecedor
</f:facet>
<p:column>
<f:facet name="header">
<h:outputText value="Código"/>
</f:facet>
<h:outputText value="#{for.codigo}"/>
</p:column>
<p:column>
<f:facet name="header" >
<h:outputText value="Nome"/>
</f:facet>
<h:outputText value="#{for.nome}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Selecionar" />
</f:facet>
<h:commandLink value="Selecionar" action="#{camposAvaliacoes.setFornecedor(for.codigo)}" />
</p:column>
</p:dataTable>
</p:dialog>
</h:form>
Onde eu passo pro listner a chamada da minha tela (criaçao dinamica, com os botoes e inputs)
situaçao de teste:
<h:form>
<p:messages/>
<h:panelGrid columns="3">
<h:outputLabel for="lfof" value="Fornecedor:" />
<h:inputText id="forne" value="#{camposAvaliacoes.fornecedor}" />
<p:commandButton value="Modal" onclick="dlg2.show();" type="button"/>
</h:panelGrid>
<p:dialog header="Pesquisa" widgetVar="dlg2" modal="true" height="650" width="600">
<h:outputLabel for="term" value="Código/Nome:" />
<h:inputText id="term" value="#{transacaoPesquisa.pesquisar}" />
<p:commandButton value="Buscar" action="#{transacaoPesquisa.botaoAtualiza}" update="tabela" />
<p:dataTable var="for" value="#{transacaoPesquisa.result}" id="tabela">
<f:facet name="header">
Pesquisa Fornecedor
</f:facet>
<p:column>
<f:facet name="header">
<h:outputText value="Código"/>
</f:facet>
<h:outputText value="#{for.codigo}"/>
</p:column>
<p:column>
<f:facet name="header" >
<h:outputText value="Nome"/>
</f:facet>
<h:outputText value="#{for.nome}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Selecionar" />
</f:facet>
<h:commandLink value="Selecionar" action="#{camposAvaliacoes.setFornecedor(for.codigo)}" />
</p:column>
</p:dataTable>
</p:dialog>
</h:form>
Onde eu crio uma tela com um campo inputText para receber o resultado da pesquisa. A diferença é que no meu teste funciona legal, quando eu chamo minha tela de pesquisa e clico na coluna da table “Selecionar”, alimenta o meu setter e getter do campo da tela principal.
Mas se eu fizer o mesmo processo na tela com criaçao dinamica, nao alimenta o meu setter e getter, e o maior detalhe, se debugar na minha classe que tem os metodos “camposAvaliacoes.setFornecedor(for.codigo)” passa o “for.codigo” perfeito, ou seja, recebe o valor, mas nao mostra em tela.
Alguma sugestao do que possa ser feito?