此文章发布于63
个月前,部分信息可能已经过时
,请自行斟酌确认。
需求
控制器对用户提交的参数进行校验,若有错误则将错误信息写入map
的errmsg
传给Thymeleaf
模板,如果没有错误则map
中只有name
而没有errmsg
。模板根据map
中是否包含errmsg
这个 key 来进行输出。
使用知识点
if
和unless
判断- Thymeleaf 内置对象
#maps
的使用
示例代码
控制器
@RequestMapping("/")
public ModelAndView index(@Validated User u, BindingResult result) {
ModelAndView view = new ModelAndView();
Map<String, Object> map = new HashMap<>();
map.put("name", u.getUserName());
map.put("password", "263499118");
if (result.hasErrors()) {
map.put("errmsg", result.getAllErrors().get(0).getDefaultMessage());
}
view.addObject("data", map);
view.setViewName("index");
return view;
}
模板
<p th:if="${#maps.containsKey(data,'errmsg')}">
[[${data.errmsg}]]
</p>
<p th:unless="${#maps.containsKey(data,'errmsg')}">
欢迎:[[${data.name}]]
</p>