欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-12 08:05:15
本文研究的主要是springmvc中使用thymeleaf模板引擎的相关内容,具体介绍如下。 thymeleaf提供了一组spring集成,允许您将其用作spring m...

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