在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> 
  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值