eclipse – 关于Yeoman,Maven和Thymeleaf HTML模板位置的询问

我最近发现了
Yeoman,这个工具极大地促进了JS依赖并构建了生命周期管理.

此外,我使用Maven作为我的Java依赖和构建工具.我实际上正在寻求整合这两种工具,以便我充分利用这两个世界.

似乎社区已经投入了大量精力与Maven / Yeoman集成各种文章,例如:http://addyosmani.com/blog/making-maven-grunt/以及yeoman-maven插件:https://github.com/trecloux/yeoman-maven-plugin

最后,我使用Thymeleaf作为我的Spring-MVC模板解决方案.

假设以下目录布局(参见上面的yeoman-maven-plugin):

pom.xml
 - src
   - main
     - java
     - webapp
     - …
   - test
     - ..
 - yo
   package.json
   component.json
   Gruntfile.js
   - app
     index.html
     ...
   - test
     ...
   - dist
     ...

我的问题是我的Thymeleaf模板应该在哪里?

>在yo / app目录下? (随后他们将被maven复制到适当的目录中)
>直接在src / main / webapp / WEB-INF / templates目录下?

例如,在AngularJS应用程序的情况下,我无法弄清楚的是,包含服务器端内容的模板/页面何时以及如何与servlet容器交互,因为Yeoman认为它们位于其app目录下…

最佳答案 如果你使用Thymeleaf作为你的
templating engine with Spring,我认为你有类似的东西

  <bean id="templateResolver"
        class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
    <property name="prefix" value="/WEB-INF/templates/" />
    <property name="suffix" value=".html" />
    <property name="templateMode" value="HTML5" />
  </bean>

  <bean id="templateEngine"
        class="org.thymeleaf.spring3.SpringTemplateEngine">
    <property name="templateResolver" ref="templateResolver" />
  </bean>

  <bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
    <property name="templateEngine" ref="templateEngine" />
  </bean>   

换句话说,您的模板应驻留在ServletContextTemplateResolver属性前缀中指定的文件夹中.在上面的例子中,那是/ WEB-INF / templates.因此,这些应该在/ src / main / webapp / WEB-INF / templates中.

如果您没有使用ServletContextTemplateResolver,而是使用ClassLoaderTemplateResolver,则可以将它们放在应用程序类路径的任何位置,并在该bean的属性中指定它.还有一个FileTemplateResolver,您可以在其中指定文件系统中任何位置的绝对路径.

使用Eclipse(maven插件)构建应用程序时,拥有文件夹

/src
    /main
        /webapp
            /WEB-INF
                /templates
                    /some-template.html
            /index.html
        /java
            /com
                /yourcompany
                    /Main.java
        /resources
            /some-properties.properties

maven会生成以下内容

/WEB-INF
    /templates
         /some-template.html
    /index.html
/classes 
    /com
        /yourcompany
             /Main.class
    /some-properties.properties

作为一个扩展的.war并提供给你的servlet容器,例如. Tomcat的.

点赞