springboot--thymeleaf

修改pom文件,引入对应坐标

    <dependencies>
        <!--web项目启动坐标-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--thymeleaf坐标-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

在src/main/文件下创建templates文件下存放模板文件

  • templates:该目录是安全的,意味着该目录下的内容是不允许外界直接访问的,springboot规定所有的模板文件必须放在该文件夹下。

Thymeleaf特点

  • thymeleaf是通过特定的语法对html页面进行渲染

Thymeleaf语法

  • 变量输出与字符串操作
    • th:text:在页面中输出某个值
    • <span th:text="Hello"></span>
      <hr/>
      <span th:text="${msg}"></span>

       

    • th:value:可以将一个值放到input标签的value属性中
    • <input type="text" name="username" th:value="${msg}">

       

    • ${#strings.isEmpty(key)}:判断字符串是否为空
    • 调用Thmeleaf内置对象时应注意语法
      • 调用内置对象一定要用#
      • 大部分内置对象都以s结尾strings、numbers、dates
    • //为空返回true,不为空返回false
      <span th:text="${#strings.isEmpty(msg)}"></span>

       

    • ${#strings.contains(k1,k2)}:判断字符串k1中是否包含字符串k2
    • //false
      <span th:text="${#strings.contains('The','9')}"></span>
      //true
      <span th:text="${#strings.contains('The','T')}"></span>

       

    • $(#strings.startsWith(k1,k2)):判断字符串k1是否以字符串k2开头
    • <!--false-->
      <span th:text="${#strings.startsWith('The','9')}"></span>
      <!--true-->
      <span th:text="${#strings.startsWith('The','T')}"></span>

       

    • $(#strings.endsWith(k1,k2)):判断字符串k1是否以字符串k2结尾
    • <!--fasle-->
      <span th:text="${#strings.endsWith('The','9')}"></span>
      <!--true-->
      <span th:text="${#strings.endsWith('The','例')}"></span>

       

    • $(#strings.length(k1)):判断字符串k1的长度
    • <!--2-->
      <span th:text="${#strings.length('张三')}"></span>

       

    • $(#strings.indexOf(k1,k2)):判断字符k2在字符串k1中第一次出现的的位置,没找到返回-1
    • <!--4-->
      <span th:text="${#strings.indexOf('zhangsan','g')}"></span>

       

    • $(#strings.substring(k1,n1,n2)):截取字符串k1位于[n1,n2)的子串
    • <!--zha-->
      <span th:text="${#strings.substring('zhangsan',0,3)}"></span>

       

    • $(#strings.toUpperCase(k1)):将字符串转化为大写
    • <!--ZHANG-->
      <span th:text="${#strings.toUpperCase('zhang')}"></span>

       

    • $(#strings.toLowerCase(k1)):将字符串转化为小写
    • <!--zhang-->
      <span th:text="${#strings.toLowerCase('ZHANG')}"></span>

       

  • 日期格式化处理
    • ${#dates.format(key)}:格式化日期key,默认的以浏览器语言为格式化标准
    • <span th:text="${#dates.format(date)}"></span>
      <!--按照自定义格式做日期转换-->
      <span th:text="${#dates.format(date,'yyyy/MM/dd')}"></span>

       

    • <!--取年-->
      <span th:text="${#dates.year(date)}"></span>
      <!--取月-->
      <span th:text="${#dates.month(date)}"></span>
      <!--取日-->
      <span th:text="${#dates.day(date)}"></span>

       

  • 条件判断
    • th:if="key":key为真返回true,否则返回false
    • //页面显示:性别:男
      <span th:if="'男'=='男'">性别:男</span>
      <span th:if="'女'=='女'">性别:女</span>

       

    • th:switch="key":多条件判断
    • <!--多条件判断-->
      //id的值为2,页面显示:ID:2
      <div th:switch="${id}">
          <span th:case="1">ID:1</span>
          <span th:case="2">ID:2</span>
          <span th:case="3">ID:3</span>
          <span th:case="4">ID:4</span>
      </div>

       

  • 迭代遍历
    • th:each="u : ${list}"
    • <table border="1">
          <tr>
              <th>name</th>
              <th>age</th>
              <th>index</th>
              <th>count</th>
              <th>size</th>
              <th>even</th>
              <th>odd</th>
              <th>first</th>
              <th>last</th>
          </tr>
          <!--迭代集合list,把迭代到的每一个元素赋值给u,var标识被迭代元素的状态-->
          <tr th:each="u,var : ${list}">
              <td th:text="${u.name}"></td>
              <td th:text="${u.age}"></td>
              <!--当前元素索引:从0开始-->
              <td th:text="${var.index}"></td>
              <!--计数器:从1开始-->
              <td th:text="${var.count}"></td>
              <!--被迭代集合的元素个数-->
              <td th:text="${var.size}"></td>
              <!--当前行数是不是偶数,从0开始-->
              <td th:text="${var.even}"></td>
              <!--当前行数是不是奇数,从0开始-->
              <td th:text="${var.odd}"></td>
              <!--是否是第一个元素-->
              <td th:text="${var.first}"></td>
              <!--是否是最后一个元素-->
              <td th:text="${var.last}"></td>
          </tr>
      </table>

       

    • 遍历map
    • <table border="1">
          <tr>
              <th>name</th>
              <th>age</th>
          </tr>
          <tr th:each="maps : ${map}">
              <!--直接输出的话,显示的是当前元素value对象的地址-->
              <!--<td th:text="${maps}"></td>-->
              <td th:each="entry:${maps}" th:text="${entry.value.name}"></td>
              <td th:each="entry:${maps}" th:text="${entry.value.age}"></td>
          </tr>
      </table>

       

  • 域操作对象
    • HttpServletRequest
    • HttpSession
    • ServletContext
    • <!--取request-->
      request:<span th:text="${#httpServletRequest.getAttribute('req')}"></span><br>
      <!--取session-->
      session:<span th:text="${session.sess}"></span><br>
      <!--取servletcontext-->
      application:<span th:text="${application.app}"></span>

       

  • URL表达式
    • URL表达式语法:
      • 基本语法:@{}
      • 绝对路径
      • <!--使用Thyemeleaf渲染的路径必须使用@{}包裹-->
        <a th:href="@{http://www.baidu.com}">绝对路径</a><br>

         

      • 相对路径:

         

        • 相对于当前项目的根
        • <!--直接用@{}包裹时时,默认相对于项目上下文的路径-->
          <a th:href="@{/show}">相对地址</a>

           

        • 相对于服务器路径的根
        • <!--相对于服务器的根,会访问同一个服务器下的project2项目-->
          <a th:href="@{~/project2/xxx}">相对于服务器的根</a>
        • 传参
        • <!--当需要传参时,可在路径后面将参数用()包裹,若有多个参数则用逗号分隔-->
          <a th:href="@{/show(id=1,name='zhangsan')}">相对路径-传参</a>

           

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值