【发布时间】:2012-01-04 07:03:03
【问题描述】:
tl;dr - 我想根据传递给瓦片中视图的单个模型在瓦片定义中设置放置属性
我正在尝试创建一个页面以使用弹簧和瓷砖显示用户。现在我的页面可以很好地获取模型,但我希望页面的标题包含用户名(它必须从模型中获取)。我在下面的代码中包含了一些摘录:
tiles.xml:
<definition name="baseLayout" template="/WEB-INF/jsp/layout/layout.jsp">
<put-attribute name="title" value="FitterBlog" />
<put-attribute name="header" value="/WEB-INF/jsp/layout/header.jsp" />
<put-attribute name="nav" value="/WEB-INF/jsp/layout/nav.jsp" />
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/WEB-INF/jsp/layout/footer.jsp" />
<put-attribute name="ads" value="/WEB-INF/jsp/layout/ads.jsp" />
<put-attribute name="css-layout" value="/FitterBlog/resources/css/layout.css" />
</definition>
<definition name="user/display" extends="baseLayout">
<put-attribute name="title" value="FitterBlog - ${user.username}" />
<put-attribute name="body" value="/WEB-INF/jsp/user/display.jsp" />
</definition>
如您所见,我尝试使用与在 jsp 中相同的语法来显示用户名。 IE。我尝试使用 ${user.username} 来显示用户名,但这不起作用,我只是在标题中显示文本“${user.username}”而不是实际的用户名。
display.jsp:
//output the username from the user model, this works fine
${user.username}
UserController.java
@RequestMapping(value="display/**")
public ModelAndView displayUser(@ModelAttribute("user") User user, BindingResult result) {
//TODO
//retrieve user number from the URL
//retrieve user from database
//display user details
user.setUsername("Awesome username!");
return new ModelAndView("user/display", "user", user);
}
如您所见,我仍在大量开发中,目前我自己在用户对象上设置了用户名(而不是从数据库中获取),但这不是重点。
【问题讨论】:
标签: spring-mvc views tiles