1

ほとんどすべてのページにサイドバーがあり、実行するにはいくつかのメソッドとクエリが必要です (都市とイベントのリストなど)。したがって、基本的には、メソッドを呼び出してから、ほぼすべてのコントローラーで model.setAttribute("mylist",list) を呼び出します。

私にとって良い解決策は、JSPに含めるときにそのサイドバーサブページのコントローラーまたはサービスを呼び出すことができる場合ですが、ビューレイヤーでは不可能です。私にできることは、すべてのページに含まれている JSP サブページに Java スニペット コードを配置することですが、これは悪いことです。

現在、これらのメソッド呼び出しを追加し、すべてのコントローラーに結果属性を設定しています。これは、多くの繰り返しコードです。これらの場合に適した設計ソリューションは何ですか?

概要: Apache Tiles では、コントローラー/サービスレイヤーでメソッド呼び出しを行う必要があるサイドバーサブページを使用しているため、ほとんどすべてのコントローラーでいくつかのメソッド呼び出しを行いたいと考えています。

4

3 に答える 3

1

ほとんどのビューで追加のモデル属性が必要な場合は、 @ControllerAdvice アノテーションを使用します。そこで、 @ModelAttribute で注釈が付けられたメソッドを宣言できます。これは、各コントローラー呼び出しで呼び出されます。

これによりオーバーヘッドが発生する可能性があるため、シンプルかつ高速にしてください;)

于 2013-07-18T17:32:40.650 に答える
0

質問を適切に受け取った場合、すべてのビュー ページの左側/右側に値を表示するために必要なリスト オブジェクトが必要です。

そのリストの値(リストが入力されるテーブル)が頻繁に変更されない場合は、クエリを1回押してリストを1回だけ準備し、そのリストをセッション変数として設定して、ビューで直接取得できるようにすることができます層。

正しい要件に基づいて、これが機能しない場合は、同様の要件に進むことができます。

于 2013-07-18T15:37:50.830 に答える