tl; dr - 我想在我的瓷砖定义中设置放置属性,基于传递到瓷砖视图的个别模型Spring + Tiles2 - 从模型中放置属性?
我试图创建一个页面来显示使用弹簧和瓷砖的用户。现在我的网页得到的模型很好,但我希望页面的标题包含用户名(它必须从模型中获得)。我已经包括从下面我的代码的一些摘录:
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中显示的用户名。即。我尝试使用$ {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);
}
你可以看到,我仍然在比较大的发展,目前设置的用户的用户名对象自己(而不是从数据库中获取它),但那不重要。