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

springBoot之Thymeleaf常见语法

 作者:潘某人SEO
988

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
申明:以上内容仅代表个人观点,仅供学习参考 本站图片来源于站点原创或CC0协议图库站点或已获得VRF授权的图库站点 本文参考于互联网如有侵权,请联系 pmrseo@foxmail.com删除 本文地址:https://www.chateach.com/it/java/905thymeleaf
相关文章
  • springboot网站搭建部署详细流程

    springboot

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

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

    html转义,springboot

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

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

    SpringBoot,异常处理

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

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

    springboot 404页面

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

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

    Springboot,cookie

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

    678
    • 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这些条件判断一样,所以这里就不再详细叙述了,下面就直接给出例子!!!

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

    Thymeleaf,日期格式

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

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

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

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

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

    SpringBoot跨域

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

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

    Java获取IP

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

    651
    • Java获取IP
  • 网站本地服务器搭建

    centos系统安装

    网站搭建第一步本地服务器的架设centos系统安装,对于刚接触网站编程的小伙伴不要先急着去购买服务器,当然土豪请随意。我们可以现在自己电脑上本地搭建一个虚拟服务器环境来运行,可以检测下自己是不是真的能力去搭建一个网站。

    840
    • centos系统安装
  • Vue中基于$event实现click事件获取html元素和css样式

    click事件,$event

    Vue中实现单击click事件获取html元素和css样式的解决方法,$event是一个对象 $event是指当前触发的是什么事件(鼠标事件,键盘事件等) $event.target则指的是事件触发的目标,即哪一个元素触发了事件,这将直接获取该dom元素。

    813
    • click事件
    • $event
  • JavaScript简介

    JavaScript简介

    JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript

    1448
    • JavaScript简介
  • css鼠标悬停变色:超链接字体随鼠标悬停颜色改变实现

    css鼠标悬停变色

    css设置超链接鼠标悬停字体上时字体变颜色,css设置鼠标悬停变色布局。鼠标悬停字体上文字变色,通常针对超链接锚文本字体颜色改变,使用了伪类:hover。

    983
    • css鼠标悬停变色
  • 解决百度UEditor富文本编辑器回车追加P标签问题

    UEditor,百度富文本编辑器,p标签

    网站的教程很多但是都比较复杂,给大家分享一个1秒可以解决百度富文本编辑器强制自动追加P标签的问题的方法。百度富UEditor富文本编辑器有一个坑就是无论你怎么修改只要你回车或者换行了就会强行追加一个P标签,会严重的影响到我们正常排版。

    2113
    • UEditor
    • 百度富文本编辑器
    • p标签
  • laravel Request的所有方法详解

    laravel Request,cookie,http参数

    laravel Request的所有方法详解,laravel实现如何获取cookie、表单参数、提交的文件、laravel如何获取网址url、路径、ip、端口等。

    1276
    • laravel Request
    • cookie
    • http参数
  • 手把手教你建立一个自己的网站

    零基础建站

    本站的主要的是分享自己建站过程中遇到的各种问题和解决方案,适合没有任何基础但是想要建立自己的一个网站的朋友,其实如果想要简单的入门让一个网站跑起来是非常的简单的。如果说是采用wordpress等CMS系统来搭建一个网站的话就更加简单了。进本上只要动手能力自学能力强一点,基本上几个小时就可以让一个站点运行起来。

    1457
    • 零基础建站
  • Laravel邮件发送功能的实现例子

    Laravel邮件发送

    Laravel如何发送邮件呢?Laravel邮件发送功能的实现例子,从邮箱注册配置到,laravel邮件参数配置,提供纯文本邮件和富文本邮件发送两种邮件发送实例。

    1450
    • Laravel邮件发送
-- 这已经是底线了,看看别的把! --