我正在开发一个使用 Spring MVC 和 Thymeleaf 作为我的 ViewResolver 的 Web 应用程序。我有以下控制器处理程序方法:
@RequestMapping(value = "/something", method = RequestMethod.POST, params = "submit")
public String doSomething(@ModelAttribute("error") String error /*, other attributes */) {
// find out if there is an error
error = getErrorMessage();
return "someHTMLfile";
}
我的观点包含这一行:
<p><span th:text="${error}">Error Message goes here</span></p>
执行时,标签不会呈现给任何东西。这可能是由于${error}
评估为空字符串,但我不明白为什么。Spring的@ModelAttribute
注解不会自动将对象添加到模型图中,Thymeleaf在哪里可以找到它?
如果我有:
@RequestMapping(value = "/something", method = RequestMethod.POST, params = "submit")
public String doSomething(ModelMap map /*, other attributes */) {
// find out if there is an error
String error;
error = getErrorMessage();
map.addAttribute("error", error);
return "someHTMLfile";
}
错误消息使视图呈现得非常好。@ModelAttribute 不会将对象添加到请求模型中吗?
编辑:我已经尝试过两者:
@RequestMapping(value = "/something", method = RequestMethod.POST, params = "submit")
public String doSomething(@ModelAttribute("error") String error, ModelMap map /*, other attributes */) {
// find out if there is an error
error = getErrorMessage();
map.addAttribute("error", error);
return "someHTMLfile";
}
这也行不通。