SpringMVC5下XML配置整合Thymeleaf模板引擎生成HTML

2021-08-26 934点热度 0人点赞 0条评论

需求

项目中需要把Html的模板文件根据动态变量输出成string的html,供其他的调用(例如根据html生成html,或者根据html发送邮件等),项目是用SpringMVC5做的,用上了Thymeleaf模板引擎,还是挺方便的,发出来供参考,因为一些配置是基于xml的,网上看到的并不多。

实现

首先引入依赖,pom.xml增加thymeleaf-spring5:

<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf-spring5</artifactId>
    <version>3.0.12.RELEASE</version>
</dependency>

application-context.xml增加如下配置

<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright (c) 2021.
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  ~
  -->

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-4.1.xsd >

    <context:annotation-config/>
    <context:property-placeholder location="classpath:jdbc.properties"/>

        <!-- 自动扫描该路径的所有注解 -->
    <context:component-scan base-package="com.terrynow.test"/>
    

    <!--其他配置省略不写-->


    <!-- ThymeLeaf 相关 -->

    <!-- 模板解析器 -->
    <bean id="templateResolver" class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
        <!-- 模板文件的路径前缀,我们把html放在/WEB-INF/templates下 -->
        <property name="prefix" value="/WEB-INF/templates/" />
        <!-- 模板文件的路径后缀 -->
        <property name="suffix" value=".html" />
        <property name="templateMode" value="HTML" />
        <!-- 配置是否缓存 -->
        <!-- 默认情况下, 模板缓存为true。如果您想要设置为false -->
        <property name="cacheable" value="false" />
        <!-- 默认编码格式 -->
        <property name="characterEncoding" value="UTF-8"/>
    </bean>
    <!-- 模板引擎 -->
    <bean id="templateEngine" class="org.thymeleaf.spring5.SpringTemplateEngine">
        <property name="templateResolver" ref="templateResolver" />
        <property name="enableSpringELCompiler" value="true" />
    </bean>

    <!-- 视图解析器 -->
    <bean class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
        <property name="templateEngine" ref="templateEngine" />
        <property name="characterEncoding" value="UTF-8"/>
    </bean>

</beans>

使用Thymeleaf模板引擎生成HTML

@Autowired
private TemplateEngine templateEngine; // Autowired Thymeleaf模板引擎

public void test() {
    Context context = new Context();
    context.setVariable("foo", "bar");
    String html = templateEngine.process("test", context); //test.html放在/WEB-INF/templates下
}

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论