Thymeleaf模版引擎ClassLoaderTemplateResolver用法

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

今天用到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。

我试过了好用的。

Thymeleaf中,并没有`process.template`方法,不过有`TemplateEngine`类的`process`方法。`TemplateEngine`的`process`方法是Thymeleaf模板引擎的核心方法,其主要作用是将模板和数据上下文进行合并,最终生成处理后的文本输出。 以下是`process`方法的简单使用示例: ```java import org.thymeleaf.TemplateEngine; import org.thymeleaf.context.Context; import org.thymeleaf.templatemode.TemplateMode; import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver; import java.util.HashMap; import java.util.Map; public class ThymeleafExample { public static void main(String[] args) { // 创建模板解析器 ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver(); templateResolver.setTemplateMode(TemplateMode.HTML); templateResolver.setSuffix(".html"); // 创建模板引擎 TemplateEngine templateEngine = new TemplateEngine(); templateEngine.setTemplateResolver(templateResolver); // 创建数据上下文 Map<String, Object> variables = new HashMap<>(); variables.put("message", "Hello, Thymeleaf!"); Context context = new Context(); context.setVariables(variables); // 处理模板 String result = templateEngine.process("example", context); System.out.println(result); } } ``` 在上述代码中,`templateEngine.process("example", context)`方法将名为`example`的模板和`context`数据上下文进行合并,最终返回处理后的结果。`process`方法在处理过程中,会根据Thymeleaf的语法规则,将模板中的表达式替换为数据上下文中对应的值,从而生成最终的文本内容。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天天

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

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

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

打赏作者

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

抵扣说明:

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

余额充值