Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring Tiles:添加上下文信息(菜单、标题)_Spring_Tiles2 - Fatal编程技术网

Spring Tiles:添加上下文信息(菜单、标题)

Spring Tiles:添加上下文信息(菜单、标题),spring,tiles2,Spring,Tiles2,我想知道向Spring3+tiles 2应用程序添加上下文信息(如当前菜单或页面标题)的最佳方式是什么 我希望系统尽可能易于扩展,例如,我的tiles配置使用通配符,因为我不想为每个新请求处理程序编写新条目: <tiles-definitions> <definition name="baseLayout" template="/WEB-INF/jsp/layout.jsp"> <put-attribute name="title" value="Templ

我想知道向Spring3+tiles 2应用程序添加上下文信息(如当前菜单或页面标题)的最佳方式是什么

我希望系统尽可能易于扩展,例如,我的tiles配置使用通配符,因为我不想为每个新请求处理程序编写新条目:

<tiles-definitions>
<definition name="baseLayout" template="/WEB-INF/jsp/layout.jsp">
    <put-attribute name="title" value="Template" />
    <put-attribute name="header" value="/WEB-INF/jsp/header.jsp" />
    <put-attribute name="menu" value="/WEB-INF/jsp/menu.jsp" />
    <put-attribute name="body" value="/WEB-INF/jsp/content.jsp" />
    <put-attribute name="footer" value="/WEB-INF/jsp/footer.jsp" />
</definition>    
 <definition name="**-tile" extends="baseLayout">
    <put-attribute name="title" value="{1}" />
    <put-attribute name="body" value="/WEB-INF/jsp/{1}.jsp" />
</definition>
</tiles-definitions>
然后在title.jsp中解释这个特定的MODEL_ID以显示一个标题,并在menu.jsp中突出显示当前菜单项

但是,我不喜欢将这些行添加到我所有控制器的所有请求方法中

我正在考虑编写一个拦截器,它试图根据视图或请求路径的名称确定上下文,但随后我必须重写拦截器中的所有URL,并使它们与控制器保持同步

向每个控制器添加上下文信息以用于公共分幅的正确或最简单的方法是什么

@RequestMapping(value="/order/{orderId}.x")
public String showOrder(ModelMap model, @PathVariable long orderId) {
    // do stuff
    model.addAttribute(Context.MODEL_ID, Context.getOrderContext());
}