Thymeleaf 简单应用的总结

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的使用,更多详细应用可以上网搜。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值