SpringMVC使用thymeleaf

目录

thymeleaf简介

配置thymeleaf

拓展


thymeleaf简介

官网:https://www.thymeleaf.org

thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该作者还是Java加密库Jasypt的作者。

Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP,或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。

  • java模板引擎,能够处理HTML,XML,JavaScript,CSS甚至是纯文本。类似于JSP和Freemarker,

  • 作用就是把各个用户的公用的东西(页面)做一个提取,然后再根据不同的数据对页面进行渲染

  • 自然模板,原型即页面。

  • 语法优雅易懂,支持这两种OGNL,SpringEL编码方式

  • 遵循Web的标准,支持HTML5

  • thymleaf的标准方言

    <span th:text="...">
    <span data-th-text="...">

 

使用thymeleaf的好处:

  • Thymeleaf 运行的环境下不需要网络,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。
  • Thymeleaf 开箱即用的特性。它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、改jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。
  • Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。

配置thymeleaf

SSM项目使用thymeleaf需要导入thymeleaf和thymeleaf-spring这两个依赖

<!-- 版本锁定 -->
    <properties> 
        <thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>
    </properties>

    <dependencies>
        <!-- thymeleaf模板引擎 -->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf</artifactId>
            <version>${thymeleaf.version}</version>
        </dependency>
        <!-- thymeleaf与Spring整合包 -->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring5</artifactId>
            <version>${thymeleaf.version}</version>
        </dependency>
    </dependencies>

需要在springmvc的配置文件中加入以下配置,然后在controller进行页面跳转时,Spring容器会搜索对应的模板引擎解析器,解析返回html页面


    <bean id="templateResolver" class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
        <!-- 你的html页面所在位置  -->
        <property name="prefix" value="/WEB-INF/pages/"/>
        <!-- html页面后缀  -->
        <property name="suffix" value=".html"/>
        <property name="templateMode" value="HTML"/>
        <property name="cacheable" value="true"/>
        <property name="characterEncoding" value="UTF-8"/>
    </bean>

    <bean id="templateEngine" class="org.thymeleaf.spring5.SpringTemplateEngine">
        <property name="templateResolver" ref="templateResolver" />
        <property name="enableSpringELCompiler" value="true" />
    </bean>

    <bean class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
        <property name="templateEngine" ref="templateEngine"/>
        <property name="characterEncoding" value="UTF-8" />
    </bean>

如果要进行想要在html页面像之前jsp页面一样获取应用作用域如request、session等内的数据对象,需要在html页面引入thymeleaf的解析约束,这里不详述thymeleaf的标签了,可以在使用时自行查询

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>title</title>
</head>
<body>

</body>
</html>

拓展

  • 配置Jsp

使用jsp的关键依赖在web和webmvc这两个依赖项,一般ssm项目都必须导入这两个包

只需要在springmvc的配置文件配置视图解析器,然后在controller直接使用@Controller注解即可,不过jsp现在开发一般不常用

    <!--  配置视图解析器对象  -->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--  配置页面路径前缀 -->
        <property name="prefix" value="/WEB-INF/pages/"/>
        <!--  配置页面路径前缀 -->
        <property name="suffix" value=".jsp"/>
    </bean>
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Spring MVC和Thymeleaf的时候,除了需要添加Thymeleaf的主依赖之外,还需要添加thymeleaf-spring4依赖。如果没有添加thymeleaf-spring4依赖,可能会报错org.thymeleaf.spring4.view.ThymeleafViewResolver,表示找不到Thymeleaf解析器。因此,thymeleaf-spring4也是必不可少的。\[1\] 对于Maven项目,可以在pom.xml文件中添加以下依赖配置: ``` <thymeleaf.version>2.1.3.RELEASE</thymeleaf.version> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf</artifactId> <version>${thymeleaf.version}</version> </dependency> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring3</artifactId> <version>${thymeleaf.version}</version> </dependency> ``` 或者可以使用以下依赖配置: ``` <!-- thymeleaf --> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring4</artifactId> <version>3.0.11.RELEASE</version> </dependency> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf</artifactId> <version>3.0.11.RELEASE</version> </dependency> ``` 这样就可以设置Thymeleaf解析器了。\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [【springmvc thymeleafspringmvc整合thymeleaf](https://blog.csdn.net/qq_41929184/article/details/105244034)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [SpringMVC整合Thymeleaf模板](https://blog.csdn.net/hustwht/article/details/79129682)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值