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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage