打包成jar怎么配置Thymeleaf 的视图解析器,是webapp的项目
时间: 2024-03-24 21:41:20 浏览: 137
Thymeleaf所需要的jar包
如果是将Spring Boot项目打成jar包,那么需要对Thymeleaf视图解析器的配置略作修改。
首先,在pom.xml文件中,我们需要将打包方式由war改为jar,并且排除掉Tomcat等Web容器的依赖,因为我们不需要在jar包中嵌入Web容器。示例如下:
```xml
<packaging>jar</packaging>
<dependencies>
<!-- 排除掉Tomcat等Web容器的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 添加Thymeleaf的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
```
接下来,在启动类中,我们需要手动配置Thymeleaf视图解析器,示例如下:
```java
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
// 配置Thymeleaf视图解析器
@Bean
public ViewResolver viewResolver() {
ThymeleafViewResolver resolver = new ThymeleafViewResolver();
resolver.setTemplateEngine(templateEngine());
resolver.setCharacterEncoding("UTF-8");
return resolver;
}
// 配置Thymeleaf模板引擎
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.setTemplateResolver(templateResolver());
return engine;
}
// 配置Thymeleaf模板解析器
@Bean
public ClassLoaderTemplateResolver templateResolver() {
ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
resolver.setPrefix("templates/");
resolver.setSuffix(".html");
resolver.setTemplateMode(TemplateMode.HTML);
resolver.setCharacterEncoding("UTF-8");
resolver.setCacheable(false);
return resolver;
}
}
```
在上述代码中,我们手动创建了Thymeleaf视图解析器、模板引擎和模板解析器,并进行了相关配置。需要注意的是,我们使用的是ClassLoaderTemplateResolver,因为我们的项目是打成jar包的,而不是war包,因此需要使用ClassLoaderTemplateResolver来加载模板文件。
最后,将模板文件放置在classpath:templates/目录下,并在代码中使用Thymeleaf进行渲染即可。
希望这个回答能对你有所帮助。
阅读全文