Day_07 thymeleaf

01-thymeleaf分支渲染(了解)

  • 概述

    • 使用th:swtich、th:case指令进行分支渲染
  • 代码实现

    @WebServlet("/demo01")
    public class Demo01Servlet extends ViewBaseServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String role = "super";
            request.setAttribute("role", role);
            processTemplate("demo01", request, response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doPost(request, response);
        }
    }
    
    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>01-thymeleaf分支渲染</title>
    </head>
    <body>
    
    
    <span th:switch="${role}">
    
        <span th:case="super">超级管理员</span>
        <span th:case="admin">管理员</span>
        <span th:case="user">用户</span>
    
    </span>
    
    
    
    </body>
    </html>
    

02-thymeleaf列表渲染(掌握)

  • 概述

    • 使用th:each进行列表渲染,类似于vue中的v-for
  • 代码实现

    @WebServlet("/demo02")
    public class Demo02Servlet extends ViewBaseServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            List<User> userList = new ArrayList<>();
            userList.add(new User(1, "张三", "root"));
            userList.add(new User(2, "李四", "admin"));
            userList.add(new User(3, "王五", "12345"));
            request.setAttribute("userList", userList);
            processTemplate("demo02", request, response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doPost(request, response);
        }
    }
    
    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>02-thymeleaf列表渲染</title>
    </head>
    <body>
    
    <table border="1px" rules="all" cellspacing="0px" cellpadding="10px" width="400px" height="300px">
    
        <tr>
            <td>状态</td>
            <td>编号</td>
            <td>姓名</td>
            <td>密码</td>
        </tr>
    
        <tr th:each="user ,state : ${userList}">
            <td th:text="${state.index}"></td>
            <td th:text="${user.userId}">编号</td>
            <td th:text="${user.userName}">姓名</td>
            <td th:text="${user.userPwd}">密码</td>
        </tr>
    
    </table>
    
    
    </body>
    </html>
    

03-lombok插件引入(掌握)

  • 开发步骤

    • ①idea安装lombok插件
    • ②idea允许注解运行
    • ③重启idea
    • ④引入lombok的jar包
    • ⑤使用lombok的注解
  • ①idea安装lombok插件

    • image-20220312092936699
  • ②idea允许注解运行

    • image-20220312093110721
  • ③重启idea

    • image-20220312093207460
  • ④引入lombok的jar包

    • image-20220312093414233
  • ⑤使用lombok的注解

    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public class User {
    
        private Integer userId;
        private String userName;
        private String userPwd;
    
    
    }
    
  • jar包下载网址

04-ModelBaseServlet类(掌握)

  • 概述

    • 原来,一个功能就是一个Servlet,这样就导致Servlet太多了,难以维护。
  • 代码实现

    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>04-ModelBaseServlet类</title>
    </head>
    <body>
    
    <a th:href="@{/addUser}">添加用户</a>
    <a th:href="@{/deleteUser}">删除用户</a>
    <a th:href="@{/updateUser}">修改用户</a>
    <a th:href="@{/selectUser}">查询用户</a>
    
    <br>
    ---------------------------------
    <br>
    <a th:href="@{/user(method=addUser)}">添加用户</a>
    <a th:href="@{/user(method=deleteUser)}">删除用户</a>
    <a th:href="@{/user(method=updateUser)}">修改用户</a>
    <a th:href="@{/user(method=selectUser)}">查询用户</a>
    </body>
    </html>
    
    public class ModelBaseServlet extends ViewBaseServlet {
    
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //①获取method
            String methodName = req.getParameter("method");
            try {
                //②获取method对象
                Method method = this.getClass().getMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
                //③反射动态执行
                method.invoke(this, req, resp);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req, resp);
        }
    }
    
    @WebServlet("/user")
    public class UserServlet extends ModelBaseServlet {
    
        public void addUser(HttpServletRequest request, HttpServletResponse response){
            System.out.println("UserServlet addUser");
            System.out.println("request = " + request);
            System.out.println("response = " + response);
        }
    
    
        public void deleteUser(HttpServletRequest request, HttpServletResponse response){
            System.out.println("UserServlet deleteUser");
        }
    
        public void updateUser(HttpServletRequest request, HttpServletResponse response){
            System.out.println("UserServlet updateUser");
        }
    
        public void selectUser(HttpServletRequest request, HttpServletResponse response){
            System.out.println("UserServlet selectUser");
        }
    
    
    }
    

05-ModelBaseServlet执行流程(掌握)

  • 执行流程
    • image-20220312103951356
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值