Thymeleaf 模板使用实例:使用 if 对 map 集合进行条件判断

需求

控制器对用户提交的参数进行校验,若有错误则将错误信息写入maperrmsg传给Thymeleaf模板,如果没有错误则map中只有name而没有errmsg。模板根据map中是否包含errmsg这个 key 来进行输出。

使用知识点

  • ifunless 判断
  • 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>
最后修改:2019 年 08 月 26 日 08 : 52 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论