Bom dia Senhores,
tenho uma dúvida relacionado a este assunto…em JSF 2
Estou utilizando JSF 2 com PrimeFaces, possuo um único bean para páginas de relatório, sendo que cada página utiliza um metodo especifico deste meu bean. O Meu bean está com escopo de REQUEST.
Em todas as telas possuo 2 forms, um form1 com campos e um botão para carregar o form2, que tem uma ou mais dataTable, que com o escopo de request é carregada após o processamento de um metodo do bean chamado pelo p:button do form1. Porém tenho uma dataTable com detalhe( o detalhe do Objeto é um de seus atributos, que no caso é do tipo List), onde faço uso da tag [code]
<p:dataTable id=“dataTableIncidentePeriodo” …>
<p:column style=“width:25px;” exportable=“false”>
<p:rowToggler />
</p:column>
…
…
[/code]
e os detalhes de cada linha do DataTable são exibidos na tag
<p:rowExpansion>
<p:dataTable id="display"....>
.......
....... /* dentro da dataTable faço a exibição dos dados da List, do atributo. Exibindo os detalhes (dataTableIncidentePeriodo) de cada linha da na dataTable display*/
.......
</p:dataTable>
</p:rowExpansion>
</p:dataTable>
Porém o funcionamento correto, vide http://www.primefaces.org/showcase/ui/data/datatable/expansion.xhtml
só ocorre se o meu Bean estiver com escopo de SESSÃO, o que pra mim é inviável pois o utilizo para mais de uma página(mesmo bean). Desta forma uso o REQUEST e a(s) dataTable(s) é(são) carregada(s) normalmente, após o retorno do metodo do bean retornando para a própria página após ser executado, e quando mudo a página do relatório as variáveis zeram(conforme o esperado).
Meu problema está no acionamento do <p:rowToggler />, pois com o escopo de REQUEST ele não funciona corretamente, não exibe os detalhes de cada linha. Somente em escopo de SESSÃO funciona corretamente, porém quando acessou outra página de relatório, que usa o mesmo bean, as variáveis já vem com valor, devido a sessão…
Alguém teria alguma ideia para resolver este problema? se necessário posso postar mais códigos para exemplificar.