0

私は Tiles を始めたばかりで、気に入っています。

私の問題は、SpringFramework のテンプレート定義で head 、 body 、および footer タイルを取得したことです。いくつかのユーザー情報をヘッド タイルに表示し、最後のログイン IP をいくつかの動的データとともにフッターに表示したいと思います。つまり、このテンプレートを使用するすべてのコントローラーのすべての変数を assagn(addAttribute) すると、それが可能になります。

ヘッド/フッター タイルが独自のスプリング コントローラーからデータを要求する方法はありますか? または、すべてのコントローラーでソースコードを繰り返さずに、ヘッド タイルとフッター タイルに情報 (変数値) を追加するにはどうすればよいですか。

ありがとう

4

2 に答える 2

0

これを実現する方法はいくつかありますが、1つの方法はフィルターを使用することです。

web.xmlで、新しいフィルターを定義し、それをすべてのURLにマップします。

<filter>
  <filter-name>myFilter</filter-name>
  <filter-class>path.to.my.filter.MyFilter</filter-class>
</filter>

<filter-mapping>
  <filter-name>myFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

次に、要素で指定されたパス<filter-class>(この場合はpath.to.my.filter.MyFilter)にクラスを作成し、実際のフィルターを作成します。

フィルタの実装に関しては、いくつかの方法もあります。統合が容易になるため、Springの実装を使用することをお勧めします。以下は、FlashMapの実装に使用した別のスタックオーバーフローポストの例です。OncePerRequestFilterを使用するため、このフィルターが呼び出されるすべてのリクエスト。このフィルタータイプを使用する場合は、これらの値をセッションに保存して、一度だけ実行され、リクエストごとに取得されるようにして、処理時間を節約することをお勧めします。

https://github.com/donkeystalk/floor41/blob/master/floor-41/src/main/java/octane/floor/filters/FlashMapFilter.java

お役に立てれば。

于 2012-09-28T14:08:42.227 に答える
0

Spring Interceptor はこれを解決します (例: http://dzone.com/tutorials/java/spring/spring-interceptor.html )

于 2013-04-26T14:28:30.960 に答える