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

时间:2021-12-25 23:12:10

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

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

Maven依赖

 

?
1
2
3
4
5
6
<!-- thymeleaf-spring4 -->
<dependency>
  <groupId>org.thymeleaf</groupId>
  <artifactId>thymeleaf-spring4</artifactId>
  <version>3.0.6.RELEASE</version>
</dependency>

配置模板解析器

 

JavaConfig的方式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@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的方式

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!-- 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中的视图和视图分解器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@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的格式:

?
1
2
3
4
5
6
<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模板引擎实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

原文链接:http://blog.csdn.net/w_x_z_/article/details/72730603