此文章发布于75个月前,部分信息可能已经过时,请自行斟酌确认。
需求
控制器对用户提交的参数进行校验,若有错误则将错误信息写入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>