我一直在尝试在我正在玩的网络中使用Thymeleaf,并且似乎无法理解配置/设置。
以前我使用过web文件夹来存储资产和jsp / html等,但是现在看来这是多余的,因为views文件夹已移动到资源。这准确吗?
我的结构看起来像这样:
src-main-java-various controllers/models etc
src-main-resources-Meta-inf - persistence.xml
src-main-resources-spring-config.xml
src-main-resources-views-test.html etc etc
src-main-webapp-assets-css - now in the wrong place?
src-main-webapp-WEB-INF-html/jsp = now irrelevant?
道歉,如果这看起来像一个愚蠢的问题,我似乎无法找到一个没有相互矛盾信息的体面教程。
我基本上是尝试使用百里香叶而不是jsp文件来设置一个简单的Web应用程序。感谢任何正确方向的指针。
到目前为止,我有一个包含
的ConfigClass @Bean
public ViewResolver viewResolver() {
ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setTemplateMode("XHTML");
templateResolver.setPrefix("views/");
templateResolver.setSuffix(".html");
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.setTemplateResolver(templateResolver);
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(engine);
return viewResolver;
}
这似乎是一切背后的关键但是因为它来自一个教程,我不确定什么是好/坏/不正确/不好的做法等等。
答案 0 :(得分:1)
我通常放在资源文件夹下的html文件用于电子邮件模板 - 这些不是您的Web应用程序的视图。视图应保留在webapp/WEB-INF
文件夹下。
要从webapp/WEB-INF
加载视图(来自ServletContext
,就像通常的SpringMVC应用程序一样),请使用ServletContextTemplateResolver
。如果模板位于类路径中(例如电子邮件模板),则使用ClassLoaderTemplateResolver
。
这是我的生产配置
@Bean
public ViewResolver viewResolver() {
ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
templateResolver.setTemplateMode("HTML5");
templateResolver.setPrefix("/WEB-INF/html/");
templateResolver.setSuffix(".html");
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.setTemplateResolver(templateResolver);
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(engine);
return viewResolver;
}
我的目录
src-main-java --> Java classes (Spring controllers, etc.)
src-main-resources --> xml configs
src-main-webapp-css --> CSS files
src-main-webapp-js --> Javascript files
src-main-webapp-WEB-INF-views --> HTML5 files
答案 1 :(得分:0)
尝试使用Spring Boot
来处理所有默认配置和依赖项。
Spring Boot从这里开始,使用Thymeleaf在pom文件中添加以下依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Spring Boot配置休息一切。
熟悉它后,您可以覆盖默认配置