私は現在、Spring + Apache Tiles webapp を実行しています。私の意図を説明するために、いくつかのサンプルコードを示す必要があります。
Apache タイルの構成:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
"http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
<tiles-definitions>
<definition name="baseLayout" template="/WEB-INF/layouts/www_base.jsp" />
<definition name="home" extends="baseLayout">
<put-attribute name="body" value="/WEB-INF/views/home.jsp" />
</definition>
</tiles-definitions>
コントローラーの例:
@Controller
public class ExampleController {
@RequestMapping("/index.html")
public String index(Map<String, Object> map) {
map.put("hello", "world");
return "home";
}
}
これは as で表示www_base.jsp
さhome.jsp
れbody
ます。と同様に変数を使用でき${hello}
ます。www_base.jsp
home.jsp
しかし、各コントローラーメソッドを各ページhello
で使用できるように設定したくありません。www_base.jsp
www_base.jsp
のコンストラクタなどでグローバル変数を設定する方法はありExampleController
ますか?
マップを使用したUPDATE サンプル コード
@Controller
@RequestMapping("/")
public class BlogController {
@ModelAttribute
public void addGlobalAttr( Map<String, Object> map ) {
map.put("fooone", "foo1");
}
@RequestMapping("/index.html")
public String posts(Map<String, Object> map) {
map.put("foothree", "foo3");
return "posts";
}
}