Thymeleaf

Thymeleaf知识点

介绍:Thymeleaf是springboot官方推荐的前端框架,

但是目前使用比较多的是:VUE

  1. 添加依赖

    org.springframework.boot
    spring-boot-starter-thymeleaf
    2.4.5

  2. 修改html的标签

    <html xmlns:th="http://www.thymeleaf.org" >
    
  3. 向标签中添加数据

    th:text 
    
    <!--向span双标签内部添加文本,这一句的意思是,把pageMessage放到span标签的test里面去-->
        <span th:text="pageMessage"></span> <br/>
    
    
    <!--从域中根据参数名取出参数值放在双标签中-->
        <span th:text="${msg}"></span>      <br/>
    
    th:value
    <!--向input标签中的value属性赋值-->
        <input type="text"  th:value="pageMessage"/>
        <!--从域中根据参数名取出参数值 向input标签中的value属性赋值-->
        <input type="text"  th:value="${msg}"/>
    
    th:if
    <span th:if="${name}!='张三'">会显示</span>
    
    th:each
    th:each="u,i :${list}" 
    
    其中i表示迭代状态。
    1,index:当前迭代器的索引 从0开始
    2,count:当前迭代对象的计数 从1开始
    3,size:被迭代对象的长度
    4,even/odd:布尔值,当前循环是否是偶数/奇数 从0开始
    5,first:布尔值,当前循环的是否是第一条,如果是返回true否则返回false
    6,last:布尔值,当前循环的是否是最后一条,如果是则返回true否则返回false
    
    
    
    th:href
    <a th:href="@{/getParam(name=${stu.name},age=${stu.age})}">跳转二</a>
    
    
    th:onclick 
    
    <a href="javascript:void(0)" th:onclick="delEmp([[${emp.empno}]],[[${emp.ename}]])">删除</a>
    
  4. java中的动态页面中的各种数据插入到html中,thymeleaf的获取方式。

    list:
    
     @RequestMapping("/showEmp")
        public String showEmp(Map<String, Object> map) {
            List<Emp> empList = empService.findAll();
            map.put("empList", empList);
            map.put("emp", empList.get(0));
            return "showEmp";
        }
    
    模板代码:
    单个数据的获取:
    <span  th:if="${empList}!=null">
        <span  th:if="${empList.size()} ne 0">
            工号:<span th:text="${empList[0].empno}"></span><br/>
            姓名:<span th:text="${empList[0].ename}"></span><br/>
            职务:<span th:text="${empList[0].job}"></span><br/>
            上级:<span th:text="${empList[0].mgr}"></span><br/>
            入职日期:<span th:text="${empList[0].hiredate}"></span><br/>
            工资:<span th:text="${empList[0].sal}"></span><br/>
            补助:<span th:text="${empList[0].comm}"></span><br/>
            部门号:<span th:text="${empList[0].deptno}"></span><br/>
        </span>
    </span>
    
    list数据的获取:
    <tr th:each="emp,i:${empList}">
            <td th:text="${i.index}"></td>
            <td th:text="${i.count}"></td>
            <td th:text="${i.size}"></td>
            <td th:text="${i.odd}"></td>
            <td th:text="${i.even}"></td>
            <td th:text="${i.first}"></td>
            <td th:text="${i.last}"></td>
            <td th:text="${emp.empno}"></td>
            <td th:text="${emp.ename}"></td>
            <td th:text="${emp.job}"></td>
            <td th:text="${emp.mgr}"></td>
            <td th:text="${emp.hiredate}"></td>
            <td th:text="${emp.sal}"></td>
            <td th:text="${emp.comm}"></td>
            <td th:text="${emp.deptno}"></td>
        </tr>
    
  5. 标准变量表达式中支持运算符

    算术运算符:
    <span th:text="1+1"></span>   2
    <span th:text="'1'+1"></span>  11
    <span th:text="${emp.empno}+1"></span>  数据结果
    <span th:text="${emp.empno+1}"></span>  同上
    关系运算符:
    gt:     great than(大于)>
    ge:    great equal(大于等于)>=
    eq:    equal(等于)==
    lt:    less than(小于)<
    le:    less equal(小于等于)<=
    ne:    not equal(不等于)!= 
    逻辑运算符:
    &&  或 and:   表示并且
    ||  或  or  : 表示或者
    
    
  6. 内置对象Thymeleaf提供了一些内置对象,内置对象可直接在模板中使用。这些对象是以#引用的。
    使用内置对象的语法

    1. 引用内置对象需要使用#
    2. 大部分内置对象的名称都以s结尾。如:strings、numbers、dates
    3. 常见内置对象如下

    arrays:数组操作的工具;
    aggregates:操作数组或集合的工具;
    bools:判断boolean类型的工具;
    calendars:类似于#dates,但是是java.util.Calendar类的方法;
    ctx:上下文对象,可以从中获取所有的thymeleaf内置对象;
    dates:日期格式化内置对象,具体方法可以参照java.util.Date;
    numbers: 数字格式化;#strings:字符串格式化,具体方法可以参照String,如startsWith、contains等;
    objects:参照java.lang.Object;
    lists:列表操作的工具,参照java.util.List;
    sets:Set操作工具,参照java.util.Set;#maps:Map操作工具,参照java.util.Map;
    messages:操作消息的工具。

posted @ 2022-06-01 17:55  孙立人bc  阅读(303)  评论(0)    收藏  举报