SpringMVC中使用Thymeleaf模板引擎实例代码

作者:王学政 时间:2021-10-20 20:03:44 

本文研究的主要是SpringMVC中使用Thymeleaf模板引擎的相关内容,具体介绍如下。

Thymeleaf提供了一组Spring集成,允许您将其用作Spring MVC应用程序中全面替代JSP的功能。

Maven依赖


   <!-- thymeleaf-spring4 -->
   <dependency>
     <groupId>org.thymeleaf</groupId>
     <artifactId>thymeleaf-spring4</artifactId>
     <version>3.0.6.RELEASE</version>
   </dependency>

配置模板解析器

JavaConfig的方式:


@Bean
public SpringResourceTemplateResolver templateResolver(){
 // SpringResourceTemplateResolver自动与Spring自己集成
 // 资源解决基础设施, 强烈推荐。
 SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
 templateResolver.setApplicationContext(this.applicationContext);
 templateResolver.setPrefix("/WEB-INF/templates/");
 templateResolver.setSuffix(".html");
 // HTML是默认值, 为了清楚起见, 在此处添加。
 templateResolver.setTemplateMode(TemplateMode.HTML);
 // 默认情况下, 模板缓存为true。如果您想要设置为false
 // 模板在修改时自动更新。
 templateResolver.setCacheable(true);
 return templateResolver;
}

@Bean
public SpringTemplateEngine templateEngine(){
 // SpringTemplateEngine自动应用SpringStandardDialect
 // 并启用Spring自己的MessageSource消息解析机制。
 SpringTemplateEngine templateEngine = new SpringTemplateEngine();
 templateEngine.setTemplateResolver(templateResolver());
 // 使用Spring 4.2.4或更高版本启用SpringEL编译器
 // 可以加快大多数情况下的执行速度, 但是当一个模板中
 // 的表达式在不同数据类型之间重用时,
 // 可能与特定情况不兼容, 因此该标志默认为“false”
 // 以实现更安全的向后兼容性。
 templateEngine.setEnableSpringELCompiler(true);
 return templateEngine;
}

XML的方式


 <!-- SpringResourceTemplateResolver自动与Spring自己集成 -->
 <!-- 资源解决基础设施, 强烈推荐。 -->
 <bean id="templateResolver"
   class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">
   <property name="prefix" value="/WEB-INF/views/" />
   <property name="suffix" value=".html" />
   <!-- HTML是默认值, 为了清楚起见, 在此处添加。 -->
   <property name="templateMode" value="HTML" />
   <!-- 默认情况下, 模板缓存为true。如果您想要设置为false -->
   <!-- 模板在修改时自动更新。 -->
   <property name="cacheable" value="true" />
 </bean>

<!-- SpringTemplateEngine自动应用SpringStandardDialect并 -->
 <!-- 使用Spring自己的MessageSource消息解析机制。 -->
 <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
   <property name="templateResolver" ref="templateResolver" />
   <!-- 使用Spring 4.2.4或更高版本启用Spring EL编译器 -->
   <!-- 可以加快大多数情况下的执行速度, 但是当一个模板中 -->
   <!-- 的表达式在不同数据类型之间重用时, -->
   <!-- 可能与特定情况不兼容, 因此该标志默认为“false” -->
   <!-- 以实现更安全的向后兼容性。 -->
   <property name="enableSpringELCompiler" value="true" />
 </bean>

Thymeleaf中的视图和视图分解器


@Bean
public ThymeleafViewResolver viewResolver(){
 ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
 viewResolver.setTemplateEngine(templateEngine());
 // 注意“order”和“viewNames”是可选的
 viewResolver.setOrder(1);
 viewResolver.setViewNames(new String[] {".html", ".xhtml"});
 return viewResolver;
}
13420.2 Thymeleaf中的视图和视图分解器
@Bean
public ThymeleafViewResolver viewResolver(){
 ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
 viewResolver.setTemplateEngine(templateEngine());
 // 注意“order”和“viewNames”是可选的
 viewResolver.setOrder(1);
 viewResolver.setViewNames(new String[] {".html", ".xhtml"});
 return viewResolver;
}

或者是以XML的格式:


<bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
<property name="templateEngine" ref="templateEngine" />
<!-- 注意“order”和“viewNames”是可选的 -->
<property name="order" value="1" />
<property name="viewNames" value="*.html,*.xhtml" />
</bean>

来源:http://blog.csdn.net/w_x_z_/article/details/72730603

标签:springmvc,thymeleaf
0
投稿

猜你喜欢

  • 详解Spring-Boot中如何使用多线程处理任务

    2022-05-14 13:10:40
  • Android开发之WebView组件的使用解析

    2022-07-22 21:52:15
  • Java Fluent Mybatis 分页查询与sql日志输出详解流程篇

    2023-01-06 05:35:43
  • autoMapping和autoMappingBehavior的区别及说明

    2023-11-29 06:39:25
  • c# List和Dictionary常用的操作

    2023-06-14 15:44:32
  • C#中OpenCVSharp实现轮廓检测

    2022-04-03 17:38:11
  • SpringBoot RestTemplate 简单包装解析

    2023-02-01 17:02:55
  • win7中C#的winForm编程使用savefiledialog不能弹出保存窗体的解决方法

    2022-09-18 07:27:57
  • Android Flutter实现搜索的三种方式详解

    2023-07-10 18:00:49
  • 使用Android Studio创建OpenCV4.1.0 项目的步骤

    2022-05-03 23:16:42
  • Android Hilt依赖注入的使用讲解

    2023-11-23 02:13:50
  • C#8 的模式匹配实现

    2023-02-11 16:22:16
  • unity实现场景切换进度条显示

    2022-05-16 20:56:42
  • Android防止按钮重复点击示例代码

    2023-10-11 18:15:24
  • Netty分布式高性能工具类recycler的使用及创建

    2022-03-04 17:57:32
  • java编写简易贪吃蛇游戏

    2021-08-03 02:53:49
  • 一篇带你解析入门LongAdder源码

    2023-11-28 20:17:52
  • Android应用开发中CardView的初步使用指南

    2022-12-30 02:04:47
  • 基于Android SQLite的升级详解

    2021-06-24 05:26:05
  • Java中static变量作用和用法详解

    2021-11-09 12:01:04
  • asp之家 软件编程 m.aspxhome.com