一.基础写法: 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数据,如果对应的值为男,则显示''男'',为女则显示''女'',如果为空,则默认显示'请选择'

Thymeleaf 随记的更多相关文章

  1. 记一次SpringBoot 开发中所遇到的坑和解决方法

    记一次SpringBoot 开发中所遇到的坑和解决方法 mybatis返回Integer为0,自动转型出现空指针异常 当我们使用Integer去接受数据库中表的数据,如果返回的数据中为0,那么Inte ...

  2. Thymeleaf模板引擎的初步使用

    在springboot中,推荐使用的模板引擎是Thymeleaf模板引擎,它提供了完美的Spring MVC的支持.下面就简单的介绍一下Thymeleaf模板引擎的使用. 在controller层中, ...

  3. [SpringBoot——Web开发(使用Thymeleaf模板引擎)]

    [文字只能描述片段信息,具体细节参考代码] https://github.com/HCJ-shadow/SpringBootPlus 引入POM依赖 <properties> <ja ...

  4. Springboot模板(thymeleaf、freemarker模板)

    目的: 1.thymeleaf模板 2.Freemarker模板 thymeleaf模板 thymeleaf 的优点: 支持html5标准,页面无须部署到servlet开发到服务器上,直接通过浏览器就 ...

  5. Spark踩坑记——Spark Streaming+Kafka

    [TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...

  6. Spark踩坑记——数据库(Hbase+Mysql)

    [TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...

  7. 这些年一直记不住的 Java I/O

    参考资料 该文中的内容来源于 Oracle 的官方文档.Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以从这个总入口 Java SE 8 Documentati ...

  8. 千回百折:百度Java研发offer斩获记和经验分享

    起因 面试过程 等待offer的过程中悟道 Java面试常考知识点个人总结 过程 百度——作为国内互联网的巨头之一,最近的一些风波对其褒贬不一,但是类似事件不是第一次发生,也绝对不是最后一次,对于真的 ...

  9. spring boot(四):thymeleaf使用详解

    在上篇文章springboot(二):web综合开发中简单介绍了一下thymeleaf,这篇文章将更加全面详细的介绍thymeleaf的使用.thymeleaf 是新一代的模板引擎,在spring4. ...

随机推荐

  1. [Leetcode]014. Longest Common Prefix

    public class Solution { public String longestCommonPrefix(String[] strs) { if(strs == null || strs.l ...

  2. C++_引用变量探究

    什么是引用 引用变量是已定义变量的别名. 如何定义引用变量: int rats; int & rodents = rats; 其中&不失地址运算符,而是类型标识符的一部分.就行声明ch ...

  3. 【学习笔记】JavaScript的基础学习

    [学习笔记]JavaScript的基础学习 一 变量 1 变量命名规则 Camel 标记法 首字母是小写的,接下来的字母都以大写字符开头.例如: var myTestValue = 0, mySeco ...

  4. 在Ubuntu中使用AppImage类型文件

    右键--属性---权限---允许作为执行文件启动

  5. BestCoder Round #66 1002

    GTW likes gt  Accepts: 75  Submissions: 261  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 1 ...

  6. hdu1028 Ignatius and the Princess III(递归、DP)

    Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ...

  7. 协议 + socket import 和 form xx import *的区别 028

    一 . 网络通信协议(了解) 1 . osi 七层协议 (最好记住 面试会问) 应表会传网数物(应用层 表示层 会话层 传输层 网络层 数据链路层 物理层) 2 .tcp/ip五层 或 tcp/ip四 ...

  8. 对称加密中的ECB模式&CBC模式

    ECB模式: CBC模式: 所有的迭代模式:

  9. py---------面向对象进阶

    一.isinstance 和 issubclass isinstance(obj,cls)检查obj是否是类cls的对象,是则返回True class Foo(object): pass obj = ...

  10. 德国生活tips

    提要: 在德国生活也近7个月的时间了,简单给准备来德国留学,生活或者是旅游的人写一些小tips.想到什么就写什么咯. (1)德国交通篇 在德国,交通是第一要点,一般大家都会看到城市里有Straßenb ...