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数据,如果对应的值为男,则显示''男'',为女则显示''女'',如果为空,则默认显示'请选择'
Thymeleaf 随记的更多相关文章
- 记一次SpringBoot 开发中所遇到的坑和解决方法
记一次SpringBoot 开发中所遇到的坑和解决方法 mybatis返回Integer为0,自动转型出现空指针异常 当我们使用Integer去接受数据库中表的数据,如果返回的数据中为0,那么Inte ...
- Thymeleaf模板引擎的初步使用
在springboot中,推荐使用的模板引擎是Thymeleaf模板引擎,它提供了完美的Spring MVC的支持.下面就简单的介绍一下Thymeleaf模板引擎的使用. 在controller层中, ...
- [SpringBoot——Web开发(使用Thymeleaf模板引擎)]
[文字只能描述片段信息,具体细节参考代码] https://github.com/HCJ-shadow/SpringBootPlus 引入POM依赖 <properties> <ja ...
- Springboot模板(thymeleaf、freemarker模板)
目的: 1.thymeleaf模板 2.Freemarker模板 thymeleaf模板 thymeleaf 的优点: 支持html5标准,页面无须部署到servlet开发到服务器上,直接通过浏览器就 ...
- Spark踩坑记——Spark Streaming+Kafka
[TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...
- Spark踩坑记——数据库(Hbase+Mysql)
[TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...
- 这些年一直记不住的 Java I/O
参考资料 该文中的内容来源于 Oracle 的官方文档.Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以从这个总入口 Java SE 8 Documentati ...
- 千回百折:百度Java研发offer斩获记和经验分享
起因 面试过程 等待offer的过程中悟道 Java面试常考知识点个人总结 过程 百度——作为国内互联网的巨头之一,最近的一些风波对其褒贬不一,但是类似事件不是第一次发生,也绝对不是最后一次,对于真的 ...
- spring boot(四):thymeleaf使用详解
在上篇文章springboot(二):web综合开发中简单介绍了一下thymeleaf,这篇文章将更加全面详细的介绍thymeleaf的使用.thymeleaf 是新一代的模板引擎,在spring4. ...
随机推荐
- spring 配置properties 编码
<!-- properties 配置文件 --> <bean id="propertyConfigurer" class="org.springfram ...
- P2905 [USACO08OPEN]农场危机Crisis on the Farm
传送门 DP 设 f [ i ] [ j ] [ k ] 表示已经走了 i 步,向上走了 j 步,向右走了 k 步时能拯救的最多奶牛数(j,k可以为负,表示反向) 设 g [ i ] [ j ] 表示 ...
- codeforces 620D Professor GukiZ and Two Arrays
#include <bits/stdc++.h> using namespace std; + ; const long long inf = 1e18; int n, m; long l ...
- input keyup的时候实现内容过滤
当在文本框中输入关键字,就会搜索出包含关键字的数据 实现: 只需要一个内容过滤即可 <body> <input type="text" id="sear ...
- django组件之ajax
AJAX简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输的数 ...
- Java升级替换java version "1.5.0"
首先进行java安装 http://www.cnblogs.com/someone9/p/8670585.html 2. 然后查看版本信息,仍然是1.5.0 [root@OKC java]# java ...
- vue 之 nextTick 与$nextTick
VUE中Vue.nextTick()和this.$nextTick()怎么使用? 官方文档是这样解释的: 在下次 DOM 更新循环结束之后执行延迟回调.在修改数据之后立即使用这个方法,获取更新后的 D ...
- canvas基础入门(二)绘制线条、三角形、七巧板
复杂的内容都是有简单的线条结合而成的,想要绘制出复杂好看的内容先从画直线开始 canvas绘制直线先认识几个函数 beginPath():开始一条路径,或重置当前的路径 moveTo(x,y):用于规 ...
- Dev Express Report 学习总结(四)Dev Express 动态生成XRTable使用总结
1. XRTableCell常见属性 XRTableCell xrTableCell = new XRTableCell(); A. 字体及字体大小 xrTableCell.Font = new S ...
- Android官方架构组件介绍之应用(四)
讲一个项目常见的功能,友盟统计功能 例如一个项目有很多多modlue,每个里面modlue都有Activity,Activity需要友盟统一,Fragment也需要友盟统计.一般做法就是继承一个Bas ...