Wiederherstellen von Anforderungsparametern in @ViewScoped Bean nach Ablauf der Sitzung
Ich habe eine Seite, die das Setup wie unten mit URL hatmy.page.com/table.xhtml?id=123
:
+----------------------------------------------+
|Meta information |
|----------------------------------------------|
| Search Fields Submit btn |
|----------------------------------------------|
| |
| |
| Big p:dataTable |
| with rowExpansion |
| |
|----------------------------------------------|
| Pager |
+----------------------------------------------+
id=123
ist der Anforderungsparameter, der den Inhalt der Ergebnistabelle steuert. Alle Aktionen laden die Datentabelle nur mit neuAJAX
.
id
wird dabei geladen:
<f:metadata>
<o:viewParam name="id" value="#{dataTable.id}" />
<f:viewAction action="#{dataTable.initialize}" />
</f:metadata>
Dies funktioniert alles gut, bis die Sitzung abläuft. Zu diesem Zeitpunkt funktioniert nichts. Ich kann keine Daten mehr abrufen, da ich keinen Zugriff mehr auf die habeid
in frage und der aufruf an dieDAO
Klassen, die die Daten abrufen, haben dies nicht.
Durch "Ich habe keinen Zugriff mehr auf dieid
" Ich meine, dass :
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id")
kehrt zurücknull
. Auch derint id
von meiner Backbohne (die durch die Backbohne geladen wird)o:viewParam
in demf:metadata
leidet das gleiche Schicksal.
Ich weiß, dass es Methoden gibt, a zu fangenViewExpiredException
, aber das ist nicht was ich will. Ich brauche die Seite, um einfach alle Werte mit dem request-Parameter neu zu laden (in diesem Fallid
), ohne dass der Benutzer es weiß.
Ich (glaube ich) brauche eine@ViewScoped
manage Bean um diese komplexe Tabelle und alle Parameter zu kontrollieren, etc.
Ich bin diesbezüglich ratlos. Ich habe versucht, meine eigenen zu bauenViewHandler
um zu versuchen, es zu veranlassen, die Seite einfach neu zu erstellen (eine Aktualisierung nachzuahmen), und versuchte, das zu verwendenPrimeFaces
ajaxExceptionHandler
unter anderem Lösungen. Aber all diese bekommen einen Fehler und zeigen ihn an. Ich möchte nur Zugriff auf meinen Anforderungsparameter habenmy.page.com/table.xhtml
?id=123
von der Backbohne.
Jede Hilfe wäre dankbar.
Ich laufe auf:
Tomcat 7Mojarra 2.2.6Omnifaces 1.8.1Primefaces 5.0