Wie navigiere ich in JSF? Wie man URL die aktuelle Seite widerspiegelt (und nicht die vorherige)

Ich lerne gerade JSF und war ziemlich erstaunt und verwirrt, als mir klar wurde, wann immer wir es benutzen<h:form>Standardmäßig zeigt mir JSF immer die URL derBisherige Seite im Browser, im Gegensatz zu der URL deraktuell Seite.

Ich verstehe, dass dies damit zusammenhängt, dass JSF ein Formular immer auf derselben Seite veröffentlicht und dann nur die vom Controller zurückgegebene Seite an den Browser rendert, der nicht weiß, dass sich der Speicherort der Seite geändert hat.

JSF scheint es schon lange genug zu geben, dass es einen sauberen, soliden Weg geben muss, damit umzugehen. Wenn ja, würde es Ihnen etwas ausmachen, dies zu teilen?

Ich habe verschiedene Workarounds gefunden, aber leider nichts, was nach einer wirklich soliden Lösung aussieht.

Akzeptieren Sie einfach, dass die URL irreführend ist.Anhängen"?faces-redirect=true" auf den Rückgabewert vonjeden Bean's Action und dannherauszufinden, wie zu ersetzen@RequestScoped mit etwas anderem (Flash Scopes, CDI-Konversation, @SessionScoped, ...).Akzeptieren Sie zwei HTTP-Roundtrips für jede Benutzeraktion.Verwenden Sie eine Methode (z. B. Bibliothek eines Drittanbieters oder benutzerdefinierten Code), um den Seitennamen in der URL auszublenden, und verwenden Sie für jede Seite immer dieselbe generische URL.

Ob"?faces-redirect=true" Gibt es eine Möglichkeit, eine gesamte Anwendung so zu konfigurieren, dass alle Anforderungen auf diese Weise behandelt werden?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage