4.1 项目创建

thymeleaf、web-starter、devtools、lombok

4.2 静态资源处理

自动配置好,我们只需要把所有静态资源放到 static 文件夹下,页面放到templates文件夹

4.3 路径构建

th:action=”@{/login}”

4.4 模板抽取

需要抽取的模板:
image.png
引用模板的三种方式:
image.png
可以带上“#”号选择指定id而不用th:fragment的值
image.png

三种方式形成的效果:
①th:insert
image.png
②replace
image.png
③include
image.png

4.5 页面跳转

  1. @PostMapping("/login")
  2. public String main(User user, HttpSession session, Model model){
  3. if(StringUtils.hasLength(user.getUserName()) && "123456".equals(user.getPassword())){
  4. //把登陆成功的用户保存起来
  5. session.setAttribute("loginUser",user);
  6. //登录成功重定向到main.html; 重定向防止表单重复提交
  7. return "redirect:/main.html";
  8. }else {
  9. model.addAttribute("msg","账号密码错误");
  10. //回到登录页面
  11. return "login";
  12. }
  13. }

4.6 数据渲染

  1. @GetMapping("/dynamic_table")
  2. public String dynamic_table(Model model){
  3. //表格内容的遍历
  4. List<User> users = Arrays.asList(new User("zhangsan", "123456"),
  5. new User("lisi", "123444"),
  6. new User("haha", "aaaaa"),
  7. new User("hehe ", "aaddd"));
  8. model.addAttribute("users",users);
  9. return "table/dynamic_table";
  10. }
  1. <table class="display table table-bordered" id="hidden-table-info">
  2. <thead>
  3. <tr>
  4. <th>#</th>
  5. <th>用户名</th>
  6. <th>密码</th>
  7. </tr>
  8. </thead>
  9. <tbody>
  10. <tr class="gradeX" th:each="user,stats:${users}">
  11. <td th:text="${stats.count}">Trident</td>
  12. <td th:text="${user.userName}">Internet</td>
  13. <td >[[${user.password}]]</td>
  14. </tr>
  15. </tbody>
  16. </table>