Spring 启动 - Thymeleaf 模板
Spring Boot - Thymeleaf template
我正在使用 Spring Boot 1.2.7 和 Thymeleaf。
所有 html 页面都在 src/main/resource/templates
文件夹中,当我在控制器中说 return "<viewName>"
时一切正常。
现在,我想为 AngularJS 使用不同的文件夹结构。
想将页面移动到其他文件夹,比如 webapps/pages
。
尝试如下配置解析器,
@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
@Bean
public ServletContextTemplateResolver getViewResolver() {
ServletContextTemplateResolver resolver = new ServletContextTemplateResolver();
resolver.setPrefix("webapps/pages/");
resolver.setSuffix(".html");
resolver.setTemplateMode("LEGACYHTML5");
return resolver;
}
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
仍然无法正常工作...我是否缺少任何其他配置,或者在这种情况下我不应该使用 Thymeleaf 吗?
pom.xml供大家参考,
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
如果不想使用标准配置,可以在application.properties
(或application.yml
)文件中配置一个TemplateResolver
。您可以在 the docs.
中找到可用选项的列表
然后为额外的TemplateResolver
引入一个新的@Configuration
:
@Configuration
public class ThymeleafConfig {
@Autowired
private SpringTemplateEngine templateEngine;
@PostConstruct
public void init() {
ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
resolver.setPrefix("webapps/pages/");
resolver.setSuffix(".html");
resolver.setTemplateMode("LEGACYHTML5");
resolver.setOrder(templateEngine.getTemplateResolvers().size());
templateEngine.addTemplateResolver(resolver);
}
}
我正在使用 Spring Boot 1.2.7 和 Thymeleaf。
所有 html 页面都在 src/main/resource/templates
文件夹中,当我在控制器中说 return "<viewName>"
时一切正常。
现在,我想为 AngularJS 使用不同的文件夹结构。
想将页面移动到其他文件夹,比如 webapps/pages
。
尝试如下配置解析器,
@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
@Bean
public ServletContextTemplateResolver getViewResolver() {
ServletContextTemplateResolver resolver = new ServletContextTemplateResolver();
resolver.setPrefix("webapps/pages/");
resolver.setSuffix(".html");
resolver.setTemplateMode("LEGACYHTML5");
return resolver;
}
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
仍然无法正常工作...我是否缺少任何其他配置,或者在这种情况下我不应该使用 Thymeleaf 吗?
pom.xml供大家参考,
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
如果不想使用标准配置,可以在application.properties
(或application.yml
)文件中配置一个TemplateResolver
。您可以在 the docs.
然后为额外的TemplateResolver
引入一个新的@Configuration
:
@Configuration
public class ThymeleafConfig {
@Autowired
private SpringTemplateEngine templateEngine;
@PostConstruct
public void init() {
ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
resolver.setPrefix("webapps/pages/");
resolver.setSuffix(".html");
resolver.setTemplateMode("LEGACYHTML5");
resolver.setOrder(templateEngine.getTemplateResolvers().size());
templateEngine.addTemplateResolver(resolver);
}
}