Schlagen Sie eine bean-Methode und leiten Sie auf eine GET-Anfrage
Ich bin mit JSF 2 und PrimeFaces 2.1 auf GlassFish.
Ich habe eine Seite, die vorgesehen ist, um Leuten zu erlauben, eine Aktion auszuführen, nachdem eine callback-URL (z.B. als link eingebettet in E-Mail oder als callback-URL-parameter einige externe Authentifizierung oder payment service). In meinem Fall brauche ich, um das Kennwort zurückzusetzen. Die callback-URL ein token
GET-parameter wie folgt:
http://example.com/app/resetPasswordForm.jsf?token=abc123
Laden der Seite von resetPasswordForm.jsf
, ich brauche, um zu überprüfen, ob der token gültig ist und Umleitung auf die Haupt-app-Bildschirm, wenn es nicht gültig ist.
Mein denken ist an eine bean-Methode wie:
public String resetPasswordHandler.showResetForm(String token) {
if /* token is valid */ {
return "resetPasswordForm.jsf";
} else {
return "main.jsf";
}
}
Aber wie würde ich veranlassen, dass die Methode, um Treffer auf die Seite laden?
Nicht sicher, wie Sie Vorgehen -- Vorschläge sind willkommen.
Ich bin mit JSF2 (mit Primefaces 2.1) auf GlassFish -- danke
InformationsquelleAutor Robert Hume | 2011-09-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
<f:viewAction>
zum auslösen einer bean-Methode vor dem Rendern der Ansicht und schicken Sie einfach eine Navigations-Ausgang (die implizit behandelt werden als redirect).E. g.
mit
Wenn Sie nicht auf JSF 2.2 noch, dann können Sie die
<f:event type="preRenderView">
Problemumgehung in Kombination mitExternalContext#redirect()
.mit
Siehe auch:
Ja, das ist normal. Gesichter-Nachrichten request-scoped. Eine Umleitung weist den browser an, um das Feuer einer Marke neue HTTP-Anforderung. Sie müssen entweder geht ein Anfrage-parameter in der redirect-URL und lassen Sie das anzeigen der Meldung abfangen, oder rufen Sie
Flash#setKeepMessages()
mittrue
um Sie wiederzubeleben durch ein cookie (das wiederum hat derzeit jedoch einen kuriosen Fehler in Mojarra in bestimmten Umständen, so sich dessen bewusst sein, siehe auch java.net/jira/browse/JAVASERVERFACES-1751 ).Können Sie bitte erklären, wie es zu tun mit einem Validator auf <f:viewParam>
Die action-Methode für view-action Komponente gefeuert wird, während die Anwendungslogik aufrufen phase direkt vor der action Methode, die gebunden sind, um einen Befehl-Knopf. In der Erwägung, dass für die pre-render view, seine gefeuert während der Render-response-phase. Ich bin ein wenig verwirrt, ob es okay ist, führen Sie die Umleitung mit pre-render view. Wäre es nicht spät genug ist.
redirect ist noch möglich, solange die Reaktion nicht begangen (also solange JSF noch nicht gerendert, die Reaktion").
InformationsquelleAutor BalusC