码迷,mamicode.com
首页 > 编程语言 > 详细

springboot中使用thymeleaf模板引擎

时间:2020-07-09 00:37:38      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:false   链接   对象   替代   als   原来   pageinfo   href   create   

一、Thymeleaf简介

Thymeleaf模板引擎主要用来做视图的展示。在springboot中默认支持thymeleaf,来替代原来ssm项目中的jsp。相较于jsp或其他的模板引擎,thymeleaf有如下特点:

1)动静结合,thymeleaf 既可以在有后台交互的情况下运行,也可以在不与后台交互的情况下运行,方便前后端开发人员协同开发;

2)多方言的支持,支持spring的标准方言,可以和springboot完美整合;

 

二、Thymeleaf 使用

1)在pom.xml文件中导入依赖;

<!--        thymeleaf 模板依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

2) 在templates 目录下新建html页面,并加入thymeleaf的命名空间即可使用,Thymeleaf的命名空间为:xmlns:th="http://www.thymeleaf.org"

技术图片

3)引入命名空间之后,我们便可以使用thymeleaf的语法来展示数据;

 

三、Thymeleaf 的语法

Thyemeleaf的使用与jsp中的jstl和el表达式使用方法相似;

Thymeleaf 表达式:用来取值,写在thymeleaf属性标签中。

1) ${} :从域中取值,与el表达式类似;

注意:当对象不存在的情况下,去获取对象的属性的话,会抛出异常;

所以取值的时候,如果可能存在不存在的情况,需在对象后添加?判断对象是否存在;

技术图片

默认从request域中取值;

 常见的内置对象:

1)session: 从session中获取值,类似jsp中的${session} == ${sessionScope}

2)request:  httpServletRequest对象,${request} == ${pageContext.request.} 

3)servletContext: ServletContext对象(application域)

4)ctx : 上下文对象

5)vars: 上下文变量

6)local: 上下文的语言环境;

 

2) *{} :选择变量表达式,需要配合th:object 属性标签一起使用。th:object可以绑定一个对象,*{属性名} 去获取绑定的对象的属性;

技术图片

3) #{} :获取国际化消息表达式;

4) ~{} :代码块表达式,用来加载代码片段。 需配合 th:replace    th:insert     th:include 三个属性标签使用。类似 <%@include >;

<body>
<!--  insert 插入代码片段 ,包含最外层的标签  ~{模板名称::代码片段名称}
       </head><header>
            <div>头部导航栏</div>
            <ul>
                <li>首页</li>
                <li>文章</li>
            </ul>
        </header></div>
 -->
<div th:insert="~{admin/common::head}">
    原来内容
</div>

<table>
    <tr>
        <td>序号</td>
        <td>用户名</td>
        <td>密码</td>
        <td>状态</td>
        <td>创建时间</td>
        <td>操作</td>
    </tr>
<!--
       for(: xx)
        th:each="遍历出来的单个对象,iterStat(状态对象):要遍历的集合
-->
    <tr th:object="${admin}" th:each="admin,iterStat:${adminPageInfo.list}">
        <td th:text="${iterStat.count}">序号</td>
        <td th:text="*{account}">用户名</td>
        <td th:text="*{password}">密码</td>
        <td>
<!--          th:if  判断标签是否显示  -->
            <span th:if="*{status eq ‘0‘}" style="color: coral">正常</span>
            <span th:if="*{status eq ‘1‘}" style="color: red">注销</span>
        </td>
        <td th:text="*{createtime}">创建时间</td>
        <td>
<!--          @{} 中链接地址需要传值的,通过在链接地址后面添加(key=value,key2=value2)的形式添加  -->
            <a th:href="@{/admin/edit(id=*{id})}">修改</a>
            <a th:href="@{/admin/delete(id=*{id})}">删除</a>
        </td>
    </tr>
</table>

<!--   替换内容,将引入的标签,替换掉现有标签 ,
     标签内容全部过来
       <footer>
            <div>版权所有,翻版必究</div>
        </footer>
 -->
<div th:replace="~{admin/common::footerDiv}">
    <span>原来内容</span>
</div>
<!--   include 加载代码片段,
   不包含最外面的标签
         <div>
            <div>版权所有,翻版必究</div>
        </div>
     -->
<div th:include="~{admin/common::footerDiv}">
    <span>原来内容</span>
</div>
</body>

5) @{} :用来定义链接url地址。 比如 img src  a href <script > <link>等;

技术图片

技术图片

 

四、Thymeleaf 属性标签

编写在html标签上,替代原有的html标签属性,以达到动态展示数据。

Thymelaef属性标签都是以th:开头。几乎涵盖了html标签中所有的属性。

常见的标签:

1) th:text :设置当前标签 的文本内容;

2) th:value : 设置当前元素的value值;

3) th:utext: 设置当前元素的html内容;

4) th:title ;

5) th:if :相当于<c:if> 用来做判断,如果表达式为false,则当前标签不显示;

6) th:each :相当于<c:foreach> ,用来遍历数据;

7) th:object : 声明变量,配合*{} 一起使用;

8) th:fragment :用来定义一个代码片段,以供th:insert replace include 调用;

9) th:insert : 将代码片段的所有内容(包含最外层的标签)插入到使用th:insert的html标签中。 <div th:insert=”~{}”></div>;

10) th:replace : 将代码片段替换掉使用th:insert的html标签;

11) th:include :将代码片段的内容(不包含最外层的标签)插入到使用th:insert的html标签中;

 

五、Thymeleaf 函数

 

 

 

springboot中使用thymeleaf模板引擎

标签:false   链接   对象   替代   als   原来   pageinfo   href   create   

原文地址:https://www.cnblogs.com/xie-qi/p/13270055.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!