Boa tarde a todos, venho aqui mais umas vez perdi ajuda depois de muitas tentativas em vão…
Vou descrever o problema :
Tenho um dataTable onde a ultima coluna tem um botão que redireciona para a pagina detalhes, quando eu clico no botão e sou redirecionado, eu apresento os dados do objeto selecionado usando o <f:setPropertyActionListener target="#{pessoaMB.pessoaSelecionada}" value="#{lista}"/>, isso funciona bacaninha. Já quando eu uso o filtro filterBy="#{lista.nome}" e clico no botão da linha filtrada, a pagina de detalhes vem em branco.
Segue o codigo:
XHTML da tela que contem o dataTable
<h:form>
<p:fieldset legend="Consultar" toggleable="true" toggleSpeed="500" collapsed="true">
<h:panelGrid>
<p:dataTable id="tablePessoa" value="#{pessoaMB.listarPessoa}" var="lista" rows="3" emptyMessage="Sem Registro"
paginator="true" cellSeparator="2">
<p:column filterBy="#{lista.nome}">
<f:facet name="header">
<h:outputText value="Nome"/>
</f:facet>
<h:outputText value="#{lista.nome}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Endereço"/>
</f:facet>
<h:outputText value="#{lista.endereco}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Número"/>
</f:facet>
<h:outputText value="#{lista.numero}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Cidade"/>
</f:facet>
<h:outputText value="#{lista.cidade}"/>
</p:column>
<p:column style="width:8%">
<f:facet name="header">
<h:outputText value="Detalhes"/>
</f:facet>
<p:commandButton id="btnDETALHES" value="Detalhes" type="submit" action="/VIEW/Doador/detalhes.xhtml" process="@form">
<f:setPropertyActionListener target="#{pessoaMB.pessoaSelecionada}" value="#{lista}"/>
</p:commandButton>
</p:column>
</p:dataTable>
</h:panelGrid>
</p:fieldset>
</h:form>
Bean
public Pessoa getPessoaSelecionada() {
return pessoaSelecionada;
}
public void setPessoaSelecionada(Pessoa pessoaSelecionada) {
this.pessoaSelecionada = pessoaSelecionada;
}
XHTML da tela de detalhes
<h:form id="form">
<p:fieldset legend="Detalhes" toggleable="true" toggleSpeed="500" collapsed="true">
<p:growl id="growl" showDetail="true" life="5000" /> <!-- sticky="true" -->
<h:panelGrid columns="2" id="grid">
<p:outputLabel value="Nome:"/>
<p:outputLabel value="#{pessoaMB.pessoaSelecionada.nome}"/>
<p:outputLabel value="Endereço:" />
<p:outputLabel value="#{pessoaMB.pessoaSelecionada.endereco}" />
<p:outputLabel value="Número:" />
<p:outputLabel value="#{pessoaMB.pessoaSelecionada.numero}" />
<p:outputLabel value="Cidade:" />
<p:outputLabel value="#{pessoaMB.pessoaSelecionada.cidade}" />
<p:outputLabel value="Telefone:" />
<p:outputLabel value="#{pessoaMB.pessoaSelecionada.telefone}" />
<p:outputLabel value="Celular:" />
<p:outputLabel value="#{pessoaMB.pessoaSelecionada.celular}" />
<p:outputLabel value="Email:" />
<p:outputLabel value="#{pessoaMB.pessoaSelecionada.email}" />
</h:panelGrid>
<h:panelGrid columns="4">
<p:commandButton id="btnEDITAR" value=" Editar " type="submit" action="/VIEW/Doador/alterar.xhtml"/>
<p:commandButton value="Excluir" action="#{pessoaMB.removePessoa(pessoaMB.pessoaSelecionada)}" update="growl">
<p:confirm header="CONFIRMAÇÃO" message="Quer realmente excluir?" icon="ui-icon-alert" />
</p:commandButton>
<p:confirmDialog global="true" widgetVar="conf">
<p:commandButton value="SIM" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check"/>
<p:commandButton value="NÃO" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" onclick="conf.hide();"/>
</p:confirmDialog>
<p:commandButton id="btnCANCELAR" value="Cancelar" type="submit" action="/VIEW/Doador/consultar.xhtml"/>
</h:panelGrid>
</p:fieldset>
</h:form>
Ps: Agradesco desde já quem puder ajudar. 