Spring 3 アプリのすべてのビューには、信頼できる一連の属性があります。したがって、すべてのコントローラーの最初の行は次のようになります。
ControllerHelper.addDefaultModel(model, personManager, request);
そこに追加します
- 個人がログインしている場合、データベースから取得したユーザー オブジェクトと氏名
- 通常一度設定される変数のセット (例:
imagesHost
) - 訪問者が切り替えることができる言語のセット
- 現在の言語
- いくつかの統計 (例: システム内の合計人数)
これにより、各ビューでログインしたユーザーの名前を表示し、画像の場所、言語のリスト、およびサイトに関する全体的な統計を簡単に参照できます。
問題は、コントローラ モデル オブジェクトがすべてのデータを格納するのに最適な場所なのか、それとも、ビューがこの情報に簡単にアクセスできる、より便利な場所があるのかということです。
ControllerHelper
そして第二に、すべてのコントローラーの最初の行として上記の行を使用する必要がないことを本当に望んでいます。実際には常に最初の行であるとは限りません。理由もなくモデルを満たすリソースを無駄にしたくないため、そのコントローラーでリダイレクトする必要があるかどうかを最初に確認することがあります。フィルターや注釈、またはいくつかの Spring コールバック メカニズムにより、コントローラーが終了した後、ビューがレンダリングされる直前にControllerHelper
コードが呼び出され、リダイレクトが返された場合はこれがスキップされるようにすることができますか?