Restaurar parámetros de solicitud en el bean @ViewScoped después de que caduque la sesión
Tengo una página que tiene la configuración de abajo con url comomy.page.com/table.xhtml?id=123
:
+----------------------------------------------+
|Meta information |
|----------------------------------------------|
| Search Fields Submit btn |
|----------------------------------------------|
| |
| |
| Big p:dataTable |
| with rowExpansion |
| |
|----------------------------------------------|
| Pager |
+----------------------------------------------+
id=123
es el parámetro de solicitud que controla el contenido en la tabla de resultados. Todas las acciones solo recargan la tabla de datos usandoAJAX
.
id
se carga a través de esto:
<f:metadata>
<o:viewParam name="id" value="#{dataTable.id}" />
<f:viewAction action="#{dataTable.initialize}" />
</f:metadata>
Todo esto funciona bien, hasta que caduque la sesión. En este punto, nada funciona. No puedo obtener datos porque ya no tengo acceso aid
en cuestión y la llamada a laDAO
Las clases que obtienen los datos no tienen esto.
Por "ya no tiene acceso a laid
" Quiero decir que :
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id")
devolucionesnull
. También elint id
de mi bean de respaldo (que se carga a través delo:viewParam
en elf:metadata
sufre el mismo destino.
Sé que hay métodos para atrapar unViewExpiredException
, pero esto no es lo que quiero. Necesito que la página simplemente vuelva a cargar todos los valores utilizando el parámetro de solicitud (en este casoid
) sin que el usuario lo sepa.
Yo (creo que) necesito un@ViewScoped
gestione bean para controlar esta tabla compleja y todos los parámetros, etc.
Estoy perdido con respecto a esto. He intentado construir mi propioViewHandler
para intentar que simplemente reconstruya (imite una actualización) de la página e intente usar elPrimeFaces
ajaxExceptionHandler
entre otras soluciones Pero todos estos obtienen un error y lo muestran. Solo quiero tener acceso a mi parámetro de solicitudmy.page.com/table.xhtml
?id=123
del frijol de respaldo.
Cualquier ayuda sería apreciada.
Estoy corriendo en:
Tomcat 7Mojarra 2.2.6Omnifaces 1.8.1Primefaces 5.0