Thymeleaf 简单应用的总结
文章目录
前言
对Thymeleaf简单应用的总结,以Spring MVC为例。
一、Thymeleaf是什么?
Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎,可以轻易地与 Spring MVC 等 Web 框架集成。
二、使用步骤
1. 配置视图解析器
代码如下(示例):
<bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
<property name="order" value="1"/>
<property name="characterEncoding" value="UTF-8"/>
<property name="templateEngine">
<bean class="org.thymeleaf.spring5.SpringTemplateEngine">
<property name="templateResolver">
<bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
<!-- 视图前缀 -->
<property name="prefix" value="/WEB-INF/templates/"/>
<!-- 视图后缀 -->
<property name="suffix" value=".html"/>
<property name="templateMode" value="HTML5"/>
<property name="characterEncoding" value="UTF-8" />
</bean>
</property>
</bean>
</property>
</bean>
当控制器方法中所设置的视图名称没有任何前缀时,此时的视图名称会被SpringMVC配置文件中所配置
的视图解析器解析,视图名称拼接视图前缀和视图后缀所得到的最终路径,会通过服务器内部转发的方式实现跳转。这里的前缀是 /WEB-INF/templates/ 后缀是 .html
2. Thymeleaf 的具体使用
(1)在html根标签处要加上引用
<html xmlns:th="http://www.thymeleaf.org">
(2)用超链接发送请求
<a th:href="@{/target}">target</a>
用这种方式可以避免写绝对路径
如果要带参数的话,可以采用字符串拼接的方式加上 ?key=value&…
也可以采用以下方式
<a th:href="@{/test(username='admin',password=123456)}">test</a>
(3)用form表单发送请求
<form th:action="@{/test}" method="post">
<input type="submit" value="test">
</form>
这里会有一个提交按钮,按下后即可发送请求
这里的method属性表示请求的方法,这里只能用get或post,用其他的方法或者不写这个属性,默认为get方式请求
SpringMVC提供了HiddenHttpMethodFilter帮助我们将post请求转换为delete或put请求
在web.xml配置文件里应加入以下代码
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
form表单里需要加个请求参数 _method 代码如下:
<form th:action="@{/test}" method="post">
<input type="hidden" name="_method" value="put">
<input type="submit" value="test"><br>
</form>
这时候真正的请求方式就是第二行value后面的值
(4)在共享域中获取参数
获取请求域的参数
<input type="text" th:value="${key}">
获取session域的参数
<input type="text" th:value="${session.key}">
获取application域的参数
<input type="text" th:value="${application.key}">
(5)if和unless用法
<tr th:if="${#lists.isEmpty(session.key)}">不存在</tr>
<tr th:unless="${#lists.isEmpty(session.key)}">存在</tr>
这里表示如果session域中的key值为空,就显示“不存在”,否则显示“存在”
(6)each用法
<tr th:each="element : ${session.list}">
<td th:text="${element.name}"></td>
<td th:text="${element.age}"></td>
<td th:text="${element.sex}"></td>
</tr>
这里相当于一个for…in…循环。
session域中有个list列表,里面有n个对象,以上代码可以将每个对象的属性显示出来
总结
以上就是这篇博客的内容,本文仅仅简单介绍了Thymeleaf的使用,更多详细应用可以上网搜。