Wie führe ich eine Aktion auf der GET-Anfrage mit f: viewParam aus?

8

Ich versuche gerade, die ID eines Datensatzes von einer Seite an eine andere Seite zu senden.

Also auf der Seite 1 habe ich so etwas:

%Vor%

und auf der Zielseite (TInput.xhtml) habe ich so etwas, um die ID zu erfassen:

%Vor%

Wenn Sie nun auf den Link klicken, wird auf Seite 2 und Seite 2 von einer View-Scoped-JSF-Bean behandelt. Und von meinem Debugging ist dies die Reihenfolge des Geschehens:

  1. Die @ PostConstruct-Methode wird ausgeführt
  2. Das Modell wird mit der aus viewParam erfassten ID aktualisiert (nach Anfrage und Validierung)

Was ich gerne erreichen möchte, ist Folgendes: Nachdem das Modell aktualisiert wurde, möchte ich eine Abfrage für diese Datensatz-ID ausführen, die Bean und die Liste der Details aus dem Business Service abrufen.

Ich frage mich, wo ich meinen Abfragecode setzen könnte:

  1. in der @ PostConstruct-Methode ist nicht möglich, da die aus viewParam erfasste ID auf das Modell festgelegt wird, nachdem die @PostConstruct-Methode beendet
  2. ist
  3. Verwenden Sie nach der Modellaktualisierung einen Phasenlistener?
  4. Verwenden Sie ein Systemereignis? obwohl ich nicht den passenden für diesen Fall finden kann

Bitte erleuchte mich:)

    
bertie 13.04.2011, 10:27
quelle

2 Antworten

8

Fügen Sie ein <f:event type="preRenderView"> hinzu <f:metadata> .

%Vor%

mit einem

%Vor%

(im Gegensatz zur Dokumentation sind das Argument und die Ausnahme optional, zumindest in allen Mojarra 2.x-Versionen, die ich benutzt habe)

    
BalusC 13.04.2011, 11:40
quelle
4

Ich habe die BalusC-Lösung verwendet. Danke;)

Ich möchte nur hinzufügen, wenn Sie Facelet verwenden, müssen Sie setzen:

%Vor%

auf jeder Seite mit der Vorlage:

mytemplate.xhtml:

%Vor%

mypage.xhtml mit mytemplate.xhtml:

%Vor%

Lösung gefunden unter: Ссылка

    
YoelBen 04.10.2011 10:39
quelle

Tags und Links