Thymeleaf和Spring4配置

时间:2015-10-17 08:47:17

标签: java spring jsp spring-mvc thymeleaf

我一直在尝试在我正在玩的网络中使用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;
    }

这似乎是一切背后的关键但是因为它来自一个教程,我不确定什么是好/坏/不正确/不好的做法等等。

2 个答案:

答案 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配置休息一切。

熟悉它后,您可以覆盖默认配置