tl; dr - я хочу установить атрибут put в своих определениях плиток на основе отдельной модели, передаваемой представлению в плитках
Я пытаюсь создать страницу для отображения пользователя, используя пружину и плитки. Прямо сейчас моя страница отлично справляется с моделью, но я хочу, чтобы в заголовке страницы было указано имя пользователя (которое оно должно было бы получить из модели). Я включил некоторые выдержки из моего кода ниже:
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);
}
Как вы можете видеть, я все еще в тяжелой разработке и в настоящее время сам задаю имя пользователя для объекта пользователя (вместо того, чтобы получать его из базы данных), но это не относится к делу.