【发布时间】:2010-11-15 21:34:19
【问题描述】:
我刚刚在我的 Spring MVC 3 应用程序中设置了 Apache Tiles 2。
我创建了我的模板:
<definition name="baseLayout" template="/WEB-INF/jsp/baseLayout.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/body.jsp"/>
<put-attribute name="footer" value="/WEB-INF/jsp/footer.jsp"/>
</definition>
还有一个欢迎页面:
<definition name="welcome" extends="baseLayout">
<put-attribute name="title" value="Welcome"/>
<put-attribute name="body" value="/WEB-INF/jsp/home.jsp"/>
</definition>
还有 tile 的属性:
welcome.(class)=org.springframework.web.servlet.view.tiles2.TilesView
welcome.url=welcome
还有我的控制器:
@RequestMapping(value="/welcome", method=RequestMethod.GET)
public ModelAndView home() {
logger.info("Welcome home yesssssss!");
ModelAndView mav = new ModelAndView();
logger.info("Loading Companies");
mav.addObject("companys", companyService.loadCompanys());
mav.setViewName("welcome");
return mav;
}
效果很好。
但是我如何从模板文件中调用另一个控制器,比如 menu.jsp 这将调用像这样的控制器:
@RequestMapping(value="/menu", method=RequestMethod.GET)
public ModelAndView menu() {
logger.info("get MEnu");
ModelAndView mav = new ModelAndView();
logger.info("Loading menu");
mav.addObject("menu", menu.get());
mav.setViewName("menu");
return mav;
}
有什么想法吗?
谢谢
【问题讨论】: