我目前正在運行Spring + Apache Tiles web應用程序。 我需要展示一些示例代碼來解釋我的意圖。將全局變量傳遞給Spring + Apache Tiles
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";
}
}
這將與home.jsp
如body
顯示www_base.jsp
。我可以在www_base.jsp
以及home.jsp
中使用變量${hello}
。
但我不想在每個控制器方法中設置hello
,以便能夠在每個頁面上的www_base.jsp
中使用它。
有沒有辦法爲www_base.jsp
設置全局變量,例如:在ExampleController
的構造函數中?
使用UPDATE 示例代碼的Map
@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";
}
}
非常感謝!我已經在上面添加了一個示例代碼。 – dtrunk