Restaurando parâmetros de solicitação no bean @ViewScoped após a expiração da sessão
Eu tenho uma página que tem a configuração abaixo com URL comomy.page.com/table.xhtml?id=123
:
+----------------------------------------------+
|Meta information |
|----------------------------------------------|
| Search Fields Submit btn |
|----------------------------------------------|
| |
| |
| Big p:dataTable |
| with rowExpansion |
| |
|----------------------------------------------|
| Pager |
+----------------------------------------------+
id=123
é o parâmetro de solicitação que controla o conteúdo na tabela de resultados. Todas as ações apenas recarregam a tabela de dados usandoAJAX
.
id
é carregado através deste:
<f:metadata>
<o:viewParam name="id" value="#{dataTable.id}" />
<f:viewAction action="#{dataTable.initialize}" />
</f:metadata>
Tudo isso funciona bem, até a sessão expirar. Neste ponto, nada funciona. Não consigo obter dados, pois não tenho mais acesso aoid
em questão e a chamada para oDAO
As classes que buscam os dados não possuem isso.
Por "não tem mais acesso aoid
"Quero dizer que:
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id")
retornanull
. Também oint id
do meu feijão de apoio (carregado através doo:viewParam
nof:metadata
sofre o mesmo destino.
Eu sei que existem métodos para pegar umViewExpiredException
, mas não é isso que eu quero. Eu preciso da página para simplesmente recarregar todos os valores usando o parâmetro request (neste casoid
) sem que o usuário saiba.
Eu (acho que) preciso de um@ViewScoped
gerenciar bean para controlar esta tabela complexa e todos os parâmetros, etc.
Estou perdido em relação a isso. Eu tentei construir o meu próprioViewHandler
para tentar fazê-lo simplesmente reconstruir (imitar uma atualização) da página e tentou usar oPrimeFaces
ajaxExceptionHandler
entre outras soluções. Mas tudo isso recebe um erro e o exibe. Eu só quero ter acesso ao meu parâmetro de solicitaçãomy.page.com/table.xhtml
?id=123
do feijão de apoio.
Qualquer ajuda seria apreciada.
Estou executando em:
Tomcat 7Mojarra 2.2.6Omnifaces 1.8.1Primefaces 5.0