0

ディレクトリ内のフォルダを表示するページがあります。これは Windows エクスプローラーと同じように機能しますが、私のページはデータテーブルを使用してフォルダーを表示します。ユーザーがフォルダー名をクリックしてフォルダーにドリルダウンすると、同じページが再表示されますが、新しいデータを持つバッキング Bean の新しいインスタンスが表示されます。バック Bean は View スコープの Bean です。JSF マネージド Bean ではなく、Spring のカスタム ビュー スコープを使用する Spring マネージド Bean です。ブラウザーの [戻る] ボタンを使用してこのページに戻ると、ブラウザーは GET 要求を発行してページを再レンダリングします。

問題は、ブラウザーに戻って、現在のフォルダーではなく、現在の最後のフォルダーに関連するデータをページにレンダリングすることです。現在、ブラウザーの戻るボタンを押すと、Bean の新しいインスタンスが作成され、現在のフォルダー (セッションに保存されている) で初期化されます。View スコープの Bean が戻るボタンの送信 (つまり、新しいインスタンスの作成ではない) で復元できることを望んでいましたが、Spring 管理の Bean であるため、それができない可能性があることに気付きました。ページのviewIdと一緒にBeanをキャッシュする方法、またはJSF Managed Beanの使用に切り替える方法についてのアイデアはありますか? 可能であれば前者のアプローチを希望しますが、後者のアプローチが機能するかどうかを知りたいです。

4

1 に答える 1

1

これは完全に設計どおりに機能しています。

リクエストベースのパラメータを処理する場合は、URLでリクエストパラメータを指定する必要があります。例page.xhtml?folder=foo:を使用<h:link><f:param>してparamsを使用してリンクを作成し、<f:viewParam>それをBeanプロパティとして設定するために使用できます。

参照:

于 2013-03-13T19:45:19.423 に答える