首页 >  编程教程 >  java教程 >  正文

springBoot之Thymeleaf常见语法

 作者:潘某人SEO
729

Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。它与 JSP,Velocity,FreeMaker 等模板引擎类似,也可以轻易地与 Spring MVC 等 Web 框架集成。与其它模板引擎相比,Thymeleaf 最大的特点是,即使不启动 Web 应用,也可以直接在浏览器中打开并正确显示模板页面 。
Thymeleaf 是新一代 Java 模板引擎,支持 HTML 原型,以直接被浏览器打开,此时浏览器会忽略未定义的 Thymeleaf 标签属性,展示 thymeleaf 模板的静态页面效果。当在应用程序中会动态地替换掉页面设置的标签属性。

一、访问map中的数据

@RequestMapping("/index")
     public String hello(Model map){
         Map<String, Object> student= new HashMap<>();
         student.put("name", "潘某人seo");
         map.addAttribute("student",student);      
         return "index";
     }
1
2
3
4
5
6
7
<span th:text="${student.name}"></span>   
字符串拼接:<h2 th:text="'姓名:'+${student.name}"></h2>
三元表达式:<input th:value="${age gt 30 ? '中年':'年轻'}"/>
gt:great than(大于)
ge:great equal(大于等于)
eq:equal(等于)
lt:less than(小于)
le:less equal(小于等于)
ne:not equal(不等于)
1
2
3
4
5
6
7
8
9

记住:th:text就是把数据渲染到两个标签中间 ,其中th是thymeleaf简写。

二、访问pojo中的属性

//pojo
Book book = new Book("辟邪剑谱",199.99f,"localhost");
map.addAttribute("book",book);
1
2
3
<img th:src="${book.bookUrl}"/>
<span th:text="${book.bookName}"/>
1
2

记住:如果你想让标签属性值动态化,请在标签属性名前面加上th:

三、循环遍历list集合

List<Book> books = new ArrayList<Book>();
for (int i = 0; i < 10; i++) {
    Book b = new Book("book"+i, 100f, i);
    books.add(b);
}
map.addAttribute("books",books);
1
2
3
4
5
6
<table border="1px" cellspacing="0px" cellspadding="0px" width="100%">
    <tr>
        <td>编号</td><td>书名</td><td>书价格</td><td>图片地址</td>
    </tr>
    <tr th:each="book:${books}">
        <td>编号</td>
        <td th:text="${book.bookName}">书名</td>
        <td th:text="${book.bookPrice}">书价格</td>
         <td th:text="${book.bookUrl}">图片地址</td>
    </tr>
</table>
1
2
3
4
5
6
7
8
9
10
11

取循环下标:

<tr  th:each="user,userStat : ${list}">  
    <th th:text="${userStat.index}">状态变量:index</th> 
    <th th:text="${userStat.count}">状态变量:count</th> 
    <th th:text="${userStat.size}">状态变量:size</th> 
    <th th:text="${userStat.current.userName}">状态变量:current</th> 
    <th th:text="${userStat.even}">状态变量:even****</th> 
     <th th:text="${userStat.odd}">状态变量:odd</th> 
    <th th:text="${userStat.first}">状态变量:first</th> 
    <th th:text="${userStat.last}">状态变量:last</th> 
</tr>
1
2
3
4
5
6
7
8
9
10

说明:

  • index:列表状态的序号,从0开始;
  • count:列表状态的序号,从1开始;
  • size:列表状态,列表数据条数;
  • current:列表状态,当前数据对象
  • even:列表状态,是否为奇数,boolean类型
  • odd:列表状态,是否为偶数,boolean类型
  • first:列表状态,是否为第一条,boolean类型
  • last:列表状态,是否为最后一条,boolean类型

四、if逻辑判断

<h1>
    <b th:text="${name}"></b><span th:if="${age gt 30}">中年</span>
    <span th:unless="${age gt 30}">年轻</span>
</h1>
1
2
3
4
5

记住:th:if表示满足条件显示标签,th:unless表示不满足条件显示标签

五、日期处理

<span th:text="${#dates.format(post.postCreate,'yyyy-MM-dd')}">2017年11月8日</span>
1

thymeleaf

六、定义片段和引用片段

定义片段:新建footer.html,并在footer.html中声明片段

<footer th:fragment="copy">  
   <script type="text/javascript" th:src="@{/plugins/jquery/jquery-3.0.2.js}"></script>  
</footer>
1
2
3

引用片段:在index.html中引用footer片段:

<!--下面的footer是页面的名字,不是标签的名字-->
  <div th:insert="footer::copy"></div>  
  <div th:replace="footer::copy"></div>  
  <div th:include="footer::copy"></div>  
结果为:  
<div>  
    <footer>  
       <script type="text/javascript" th:src="@{/plugins/jquery/jquery-3.0.2.js}"></script>  
    </footer>    
</div>    
<footer>  
  <script type="text/javascript" th:src="@{/plugins/jquery/jquery-3.0.2.js}"></script>  
</footer>    
<div>  
  <script type="text/javascript" th:src="@{/plugins/jquery/jquery-3.0.2.js}"></script>  
</div>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

说明:

  • th:insert :保留自己的主标签,保留th:fragment的主标签。
  • th:replace :不要自己的主标签,保留th:fragment的主标签。
  • th:include :保留自己的主标签,不要th:fragment的主标签。(官方3.0后不推荐)

七、内联方式

如果不内联我们这么拼接字符串

<span th:text="'名字'+${stu.name}+'性别'+${stu.sex}+'年龄'+${stu.age}"></span>
1

使用内联我们就可以这么玩:

<span th:inline="text">名字[[${stu.name}]]性别[[${stu.sex}]]年龄[[${stu.age}]]</span>
1

一对比,发现第一种拼接起来麻烦,第二种更快捷,所以内联还是有使用场景的
注意:一定要加th:inline=“text”

八、内置对象

<span th:if="${session.name!=null}" th:text="'欢迎:'+${session.name}"></span>
<span th:id="${session.name==null}" th:>请登录</span>
1
2

九、自定义标签属性

<span th:sex="${stu.sex}" th:age="${stu.age}"></span>
1

这样写标签属性是取不到值的,你必须这么写

<main th:attr="sex=${stu.sex},age=${stu.age}"></span>
1
公众号
潘某人SEO 关注我每天学习SEO优化相关知识... 470篇原创内容
潘某SEO 公众号
申明:以上内容仅代表个人观点,仅供学习参考 本站图片来源于CC0协议或已获得VRF授权的图库站点 本文参考于互联网如有侵权,请联系 pmrseo@foxmail.com删除 本文地址:https://www.chateach.com/it/java/905thymeleaf
相关文章
  • springboot网站搭建部署详细流程

    springboot

    linux环境如何搭建java框架springboot,为大家演示一种快速简单的搭建springboot的方法。由于springboot是java的众多框架之一,因此需要部署好java的运行环境,即服务器安装好jdk18以及tomcat3,注意版本的兼容性。

    819
    • springboot
  • springboot如何对html进行转义及恢复

    html转义,springboot

    Spring HtmlUtils把HTML编码转义,可将HTML标签互相转义,HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用。

    1077
    • html转义
    • springboot
  • SpringBoot中的异常处理的详细教程

    SpringBoot,异常处理

    SpringBoot中的异常处理的详细教程,处理用户请求出现运行时异常时直接响应给用户的是一个错误界面,对于用户的使用体验不友好。什么是全局异常处理机制,用来解决整个系统中任意一个控制器抛出异常时的统一处理入口,如何使用全局异常处理类 implements HandlerExceptionResolver,之后重写接口中的resolveException方法。

    571
    • SpringBoot
    • 异常处理
  • springboot怎么返回404页面及状态码

    springboot 404页面

    我们的项目通常来讲都是一个比较大的项目,包含了各种各样的服务。如果每个服务都以不同的方式返回异常信息,这样排查的时候就会比较凌乱。如果我们定义一个标准的异常处理体系。并在所有的服务中使用。那样开发起来就可以快速定位。页面也会更加的简单和直观。

    743
    • springboot 404页面
  • Springboot如何生成cookie,获取cookie信息

    Springboot,cookie

    Springboot如何生成cookie,获取cookie信息,cookie就是一个小体积的键值对,格式:key=value;客户端和服务器端,通常使用http协议来进行数据传输,而http协议是无状态的。也就是客户端向同一个服务器端发送的第一次Request和第二次Request,是没有关联的。需要cookie来保存一些用户信息,每次向相同的域名(domian)和路径(path)发送Request时都会携带cookie。

    343
    • Springboot
    • cookie
  • SpringBoot——Thymeleaf中的条件判断

    Thymeleaf

    SpringBoot——Thymeleaf中的条件判断(th:if、th:unless、th:switch、th:case),th:if、th:unless、th:switch、th:case 这几个属性,其实和JSP里面的那些标签都是类似的,含义就可以理解为Java语言中的if、else、switch-case这些条件判断一样,所以这里就不再详细叙述了,下面就直接给出例子!!!

    941
    • Thymeleaf
  • SpringBoot--Thymeleaf日期格式处理

    Thymeleaf,日期格式

    Thymeleaf作为众多模板引擎中的一种,我最初也是对它充满了陌生,在SpringBoot如何处理时间格式,SpringBoot--Thymeleaf日期格式处理。

    381
    • Thymeleaf
    • 日期格式
  • SpringBoot如何实现邮箱验证

    SpringBoot,邮箱验证,验证码发送

    在网站及各种应用中不可避免的需要运用到邮件发送服务,如消息提醒,验证码的发送,都需要使用到邮件发送。大体思路:先生成一个六位随机验证码并存起来,调用邮箱接口发送验证码,将用户输入的验证码和之前保存的验证码进行比对。

    744
    • SpringBoot
    • 邮箱验证
    • 验证码发送
  • Spring Boot 如何解决跨域问题

    SpringBoot跨域

    SpringBoot 如何解决跨域问题方法,CORS全称Cross-Origin Resource Sharing,意为跨域资源共享。当一个资源去访问另一个不同域名或者同域名不同端口的资源时,就会发出跨域请求。如果此时另一个资源不允许其进行跨域资源访问,那么访问的那个资源就会遇到跨域问题。

    327
    • SpringBoot跨域
  • Java获取IP,如何获取到访客的真实公网ip

    Java获取IP

    springboot,java如何获取用户的真实ip地址呢?项目开发中,不管是什么应用不管是什么语言,获取ip地址是非常关键的一环,因为管是操作日志的记录还是业务的需求上都不可或缺的用到访客的ip地址,那么在java中如何获取到IP地址呢?

    426
    • Java获取IP
  • js中的数组元素的添加方法

    js数组添加元素

    js中的数组元素的添加方法,主要有三种方法,用索引元素添加、push( )方法、unshift()方法,push()方法在数组的尾部添加一个或多个元素,并返回数组新的长度,修改并替换了原始数组而非生成一个修改版的新数组。

    298
    • js数组添加元素
  • 如何监听客户端的网络速度及质量

    网络质量

    在实际形况中,站点及应用可以满足绝对的流畅性,但是用户的网络环境千变万化,尤其是移动端用户,这种情况情况下页面加载速度的瓶颈完全就取决于用户的网络环境。通过浏览器的 Network Information API 接口中提供的Navigator对象的connection属性,来评估用户的连接速度以及设备所处的网络类型。

    217
    • 网络质量
  • linux系统下使用Vue CLI脚手架安装vue3

    Vue CLI,vue3

    linux系统下使用Vue CLI脚手架安装vue3。Vue 提供了一个官方的 CLI,为单页面应用 (SPA) 快速搭建繁杂的脚手架。它为现代前。端工作流提供了功能齐备的构建设置。

    972
    • Vue CLI
    • vue3
  • php获取当前时间操作

    php获取时间

    在PHP语言中我们如何获取当前时间呢?只要通过date()和time()函数组合使用实现。

    892
    • php获取时间
  • lnmp环境简介

    lnmp环境简介

    LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。

    894
    • lnmp环境简介
  • linux服务器如何部署java运行环境

    linux服务,部署java

    linux服务器需要运行java程序那么就需要jvm服务,同时为了方便开发维护直接安装jdk即可。对于java网站的运行则还需要安装Tomcat。下面就以在centos服务器上演示一下java运行环境的部署。

    662
    • linux服务
    • 部署java
  • 原生js 复制内容到剪切板代码实现

    js 复制内容,剪切板代

    有时候为了提升用户体验,比如在某些页面需要实现点击内容,将内容复制到剪切板,可以提升用户复制内容的操作效率;因此在实际操作中通过一定的事件触发复制功能是非常有意义的行为,下面是两种通过原生js实现复制内容到剪切板。

    611
    • js 复制内容
    • 剪切板代
-- 这已经是底线了,看看别的把! --