• Thymeleaf 随记


    一.基础写法: th:text='${数据}  ,其中text可以修改成其他,如href,value,class....看需求

    <p th:text='${后台返回的数据}'>静态文本</p>       <!--文本输出-->
    <input th:value="${后台返回的数据}" />       <!--输入框value值-->
    <a th:href='${href}'>超链接</a>  
    <img th:src='${path}' />              <!--path为后台返回的路径-->

    注:th:utext可以解析标签,而th:text不能解析标签,如果后台传的数据有带标签的会原封不动的输出来

    var box='<p><b>hello</b></p>';
    
    //前台接受数据
    <div th:text="${box}"></div>       ---->输出<p><b>hello</b></p>
    <div th:utext="${box}"></div>       ---->输出hello,并通过b标签进行加粗

    二.循环

    <!--循环(arr为后台穿的数组,包括id和name值)-->
            
            <th:block th:each='list,state : ${arr}'>
                <li th:text='${list.id}'></li>
                <li th:text='${list.name}'></li>
                <li th:text='${state.index}'></li>  <!--state.index为循环的索引,从0开始-->
                <li th:text='${state.count}'></li>  <!--state.count为循环的索引,从1开始-->
                <li th:text='${state.size}'></li>  <!--state.size为对象的大小,长度-->
                <li th:text='${state.current}'></li>  <!--state.current迭代的变量-->
                <li th:text='${state.even}'></li>  <!--布尔值,当前循环是否为偶数-->
                <li th:text='${state.odd}'></li>  <!--布尔值,当前循环是否为奇数-->
                <li th:text='${state.first}'></li>  <!--布尔值,当前循环是否为第一个-->
                <li th:text='${state.last}'></li>  <!--布尔值,当前循环是否为最后一个-->
            </th:block>

    注: <th:block></th:block>  thymealeaf解析时会移除掉此标签对,但不会移除其中的内容。(一般出现在循环和公共引用中)

    三:定义块,引用块

    <!--定义一个可以引用的块,th:fragment='meta'  meta:块名字可以随意取,根据内容-->
    <th:block th:fragment='meta'>
      <meta charset="utf-8" />
       <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE">
    </th:block>
            
    <!--引用上面定义的块  ,meta是定义块的名字-->
    <th:block th:include="(${块路径})'::meta"></th:block>

      <!--replace替换标签-->
      <th:block th:replace="(${块路径})'::meta"></th:block>

    四:if条件,unless条件(与if相反)

        <!--if条件判断,arr为后台传过来的数据-->
            <th:block th:each='list,state :${arr}'>
                <li th:if='${state.index lt 2}' th:text='${list}'></li>   <!--如果遍历的所以值小于2,获取遍历的list列表,其他索引大于等于2的的不遍历-->
           <li th:unless='${list==null}'>login</li>    <!--list遍历项为空,则不显示,unless与if条件相反-->       
        </th:block>

     

    注: 两个值比较的对应的表达式

        >                  gt

        <     lt

        >=      ge

        <=      le

        ==      eq

        !=     ne

    五:switch...case

         <!--如果遍历出来的值为张三,则显示'名叫张三'-->
            <!--如果遍历出来的值为李四,则显示'名叫李四'-->
            <th:block th:each='list,state :${arr}'>
                <li th:switch='${list.name}'>
                    <span th:case='张三' th:text='名叫张三'></span>
                    <span th:case='李四' th:text='名叫李四'></span>
                </li>
            </th:block>

    注:满足其中一个条件才会显示对应的值,如果都不满足,则不显示.不同display:block,这里是标签都没有,没有这个元素,上面的if条件也一样

    六:select

    <select th:field='${sex}' th:switch='${sex.tostring}'>
        <option value="" th:case='' th:selected='selected'>男</option>
        <option value="" th:case='' th:selected='selected'>女</option>
        <option value="" >请选择</option>
    </select>

    注:后台取的sex数据,如果对应的值为男,则显示''男'',为女则显示''女'',如果为空,则默认显示'请选择'

  • 相关阅读:
    关于 虚拟化 的 我的看法
    .Net 一开始就不应该搞 .Net Core
    我提出了一个 Lean Html 5 的 概念 和 标准
    我发起了一个 用 C# 写 的 浏览器 开源项目 HtmlCore
    我发起了一个 .Net 开源 跨平台 GUI (界面开发框架)项目 HtmlCore
    我发起了一个 ILBC 的 子项目 ILBC Studio
    我发起了一个 ILBC 的 子项目 EScript
    ILBC 规范
    微编程 时代 已经到来
    C++ 是 编程界 的 背锅侠
  • 原文地址:https://www.cnblogs.com/xiaoxinzi/p/8494686.html
Copyright © 2020-2023  润新知