Thymeleaf经常使用标签说明

以前在咱们开发项目,作view试图模块时,咱们一般是使用JSP,可是随着技术的发展,以及springboot的使用日渐增多,在springboot的项目中已经渐渐再也不使用JSP去做为view,而是逐渐采用了Thymeleaf这项技术.html

Thymeleaf

简单地说,Thymeleaf是一个html模板引擎,提供了与Spring MVC进行整合的API,可做为MVC架构中Web应用的View层.spring

而在springboot中导入Thymeleaf的方法也在上文--thymeleaf导入中有所介绍,也不作过多赘述.segmentfault

可是有一点须要注意:可能在开发过程当中,你们会以为每次更改页面后,都要从新重启服务,非常麻烦与反人类,能够经过配置热启动来改善.后端

spring.thymeleaf.cache=false

cache是thymeleaf带有的一个缓存区,咱们将它设置为false便可不须要每次重启服务,直接刷新界面就能够(但要注意服务端的代码修改的话仍是须要重启服务器)数组

但也不要一味的认为cache的设置就是麻烦的,它主要的做用是要在项目上线时设置为true(不设置默认为true),这样它会提供一个缓存区,不用每次都向服务器请求数据,能够有效的提升响应速度.缓存

Thymeleaf标签

关与Thymeleaf标签的具体使用在官网中的文档中均可以找到,本文只是说一些经常使用到的标签,详解还请参照官方文档.springboot

数据迭代


在thymeleaf中数据的循环迭代使用的是th:each="x1:${x2}",
做用能够取出域中的数据(数组/集合)去进行循环,一般配合th:text="${x1.x3}"使用.服务器

其中x2为域中存储的数据名称;x1为本身定义的名称,用于在页面中使用数据;x3为x2中的属性,要和get方法名一致.restful

代码以下:架构

<tr th:each="g:${list}">
    <td th:text="${g.id}"></td>
    <td th:text="${g.name}"></td>
</tr>

超连接


在thymeleaf中超连接使用th:href="@{x1(x2=${x3.x4})}",

x1为超连接指向的路径;x2为本身命名的名称;x3,x4为上边数据迭代中的th:text="${x1.x3}"x1和x3.

代码以下:

<a th:href="@{/goods/doDeleteById(id=${g.id})}">
delete
</a>

关于超连接指向地址,还提供了restful风格的写法,
平时咱们所写代码地址上带请求数据通常为:a/b/c?id=x
而restful这种风格为:a/b/c/{id}

代码以下:

<a th:href="@{/goods/doFindById/{id}(id=${g.id})}">
update
</a>

在这种语法中,{id}为一个变量表达式,由后面()内的内容补充,若是咱们但愿在后端的Controller类的方法参数中得到传递的参数,就须要加@PathVariable描述参数.

提交表单


在thymeleaf中提交表单采用th:action="@{x1}"

x1为表单所要提交至的地址.

代码以下:

<form th:action="@{/goods/doUpdateGoods}" method="POST">
<input type="text" name="name" th:value="${goods.name}">

当你以为上述代码若是显示时有不少属性,而每一个属性都须要${对象名.属性名}的方式来显示会很重复,想把对象名直接提取出来,能够经过在表单上加th:object,

代码以下:

<form th:action="@{/goods/doUpdateGoods}" method="POST" th:object="${goods}">
<input type="text" name="name" th:value="${name}">

拓展

1)当咱们的url地址没有以"/"开头时,默认这个内容要替换到如今地址栏url最后一个"/"后的内容进行拼接.

2)请求转发:return "forward:doGoodsUI";重定向:return "redirect:/goods/doGoodsUI";请求转发因为是服务端内部转发因此能够不写"/",直接跳转;而重定向因为是二次请求二次响应,且能够跳转至别的资源甚至是别的服务器,因此须要写绝对地址,必须以"/"开头!

相关文章
相关标签/搜索