Thymeleaf模版引擎ClassLoaderTemplateResolver用法

本文介绍了一种使用Thymeleaf模版引擎的方法,特别是如何通过classLoaderTemplateResolver来加载位于类路径下的模版文件。展示了具体的Spring配置示例,并解释了如何指定模版的位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天用到Thymeleaf模版引擎,因为不是传统的web工程,所以网上资料很少。

网上的例子大多是servletContextTemplateResolver,这里用的是classLoaderTemplateResolver。

好容易找到一个例子:

        <bean id="servletContextTemplateResolver" 
                class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
                <property name="prefix" value="/WEB-INF/views/" />
                <property name="order" value="1" />
                <property name="suffix" value=".html" />
                <property name="templateMode" value="HTML5" />
        </bean>

        <bean id="classLoaderTemplateResolver" 
                class="org.thymeleaf.templateresolver.ClassLoaderTemplateResolver ">
                <property name="order" value="2" />
                <property name="templateMode" value="HTML5" />
        </bean>
        <bean id="templateEngine" class="org.thymeleaf.spring3.SpringThymeleafTemplateEngine">
                <property name="templateResolvers">
                        <set>
                                <ref bean="servletContextTemplateResolver" />
                                <ref bean="classLoaderTemplateResolver" />
                        </set>
                </property>
        </bean>

这样如果需要classpath下的模版的时候,比如模版在org.crusoe下名字是createForm.html,那么模版名字就应该是org/crusoe/createForm.html。

我试过了好用的。

### 配置Spring MVC中的Thymeleaf模板引擎 为了使Spring MVC项目能够使用Thymeleaf作为视图解析器,需引入必要的依赖并配置`ViewResolver`。 #### 添加Maven依赖 首先,在项目的pom.xml文件中加入Thymeleaf的相关依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> ``` 此操作确保了应用能访问到最新的Thymeleaf版本以及其集成组件[^2]。 #### 创建Template Engine Bean 接着定义一个用于处理HTML模板渲染的Bean实例。这可以通过Java配置类来完成: ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver; @Configuration public class ThymeleafConfig { @Bean public ClassLoaderTemplateResolver templateResolver() { var resolver = new ClassLoaderTemplateResolver(); resolver.setPrefix("/templates/"); resolver.setSuffix(".html"); resolver.setTemplateMode("HTML5"); resolver.setCharacterEncoding("UTF-8"); return resolver; } } ``` 上述代码片段展示了如何创建一个基于ClassLoader加载路径下的模板资源解析器,并指定了默认编码方式和模式为HTML5[^1]。 #### 注册View Resolver Bean 最后一步是在Spring上下文中注册`ThymeleafViewResolver` bean,以便控制器返回逻辑名称时能找到对应的物理位置上的HTML文件: ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.thymeleaf.spring5.view.ThymeleafViewResolver; @Configuration public class MvcConfig { private final TemplateEngine templateEngine; public MvcConfig(TemplateEngine templateEngine) { this.templateEngine = templateEngine; } @Bean public ThymeleafViewResolver viewResolver() { var resolver = new ThymeleafViewResolver(); resolver.setTemplateEngine(templateEngine); resolver.setCharacterEncoding("UTF-8"); return resolver; } } ``` 通过这种方式设置后,当应用程序接收到HTTP请求并通过@Controller标注的方法响应时,就可以利用Thymeleaf来进行动态内容填充了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值