私は現在 JSF を学んでいますが、 を使用するときはいつでも<h:form>
、JSF の標準的な動作は、現在のページの URL とは対照的に、常にブラウザーに前のページの URL を表示することであることに気付いたとき、かなり驚き、戸惑いました。
これは、JSFが常にフォームを同じページに投稿し、コントローラーがページの場所が変更されたことを知らないブラウザーに返すページをレンダリングする方法に関係していることを理解しています。
JSF は長い間存在しているように思われるので、これに対処するためのクリーンで確実な方法が必要です。もしそうなら、共有してもよろしいですか?
さまざまな回避策を見つけましたが、残念ながら、真の確実な解決策とは思えません。
- URL が誤解を招くものであることをただ受け入れてください。
- すべての Bean のアクション
"?faces-redirect=true"
の戻り値に追加してから@RequestScoped
他のもの (Flash スコープ、CDI 会話、@SessionScoped など)に置き換える方法を見つけます。- ユーザー アクションごとに 2 回の HTTP ラウンド トリップが発生することを受け入れます。
- なんらかの方法 (サードパーティ ライブラリやカスタム コードなど) を使用して URL 内のページ名を非表示にし、すべてのページで常に同じ汎用 URL を使用します。
すべてのリクエストをこの"?faces-redirect=true"
ように処理するようにアプリケーション全体を構成する方法はありますか?