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

 更新时间:2018年02月06日 15:49:56   作者:王学政  
这篇文章主要介绍了SpringMVC中使用Thymeleaf模板引擎实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

本文研究的主要是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> 

总结

以上就是本文关于SpringMVC中使用Thymeleaf模板引擎实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

  • Redis缓存实例分步详解

    Redis缓存实例分步详解

    实际开发中缓存处理是必须的,不可能我们每次客户端去请求一次服务器,服务器每次都要去数据库中进行查找,为什么要使用缓存?说到底是为了提高系统的运行速度
    2023-04-04
  • Spring Data JPA 设置字段默认值方式

    Spring Data JPA 设置字段默认值方式

    这篇文章主要介绍了Spring Data JPA设置字段默认值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java 抽象类特点总结

    Java 抽象类特点总结

    在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类
    2021-10-10
  • SpringBoot注解梳理(小结)

    SpringBoot注解梳理(小结)

    这篇文章主要介绍了SpringBoot注解梳理(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • 基于Java设计一个短链接生成系统

    基于Java设计一个短链接生成系统

    相信大家在生活中会收到很多短信,而这些短信都有一个特点是链接很短。这些链接背后的原理是什么呢?怎么实现的?小编今天就带你们详细了解一下
    2021-12-12
  • 解决java启动时报线程占用报错:Exception in thread “Thread-14“ java.net.BindException: Address already in use: bind

    解决java启动时报线程占用报错:Exception in thread “Thread-14“ java.ne

    这篇文章主要给大家介绍了关于解决java启动时报线程占用:Exception in thread “Thread-14“ java.net.BindException: Address already in use: bind的相关资料,文中将解决的办法介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • Java文件操作之按行读取文件和遍历目录的方法

    Java文件操作之按行读取文件和遍历目录的方法

    这篇文章主要介绍了Java文件操作之按行读取文件和递归遍历目录的方法,遍历目录文中分别举了递归和非递归的例子,需要的朋友可以参考下
    2016-03-03
  • java 在Jetty9中使用HttpSessionListener和Filter

    java 在Jetty9中使用HttpSessionListener和Filter

    这篇文章主要介绍了java 在Jetty9中使用HttpSessionListener和Filter的相关资料,需要的朋友可以参考下
    2017-06-06
  • ObjectMapper 如何忽略字段大小写

    ObjectMapper 如何忽略字段大小写

    这篇文章主要介绍了使用ObjectMapper实现忽略字段大小写操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Arrays.sort如何实现降序排序

    Arrays.sort如何实现降序排序

    这篇文章主要介绍了Arrays.sort如何实现降序排序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11

最新评论