我已经配置了Spring-Servlet:
<bean id="templateResolver"
class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
<property name="prefix" value="/WEB-INF/templates/" />
<property name="suffix" value=".html" />
<property name="characterEncoding" value="UTF-8" />
<property name="templateMode" value="HTML5" />
</bean>
<bean id="tilesConfigurer"
class="org.thymeleaf.extras.tiles2.spring4.web.configurer.ThymeleafTilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles-defs.xml</value>
</list>
</property>
</bean>
<bean id="tilesViewResolver" class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
<property name="viewClass"
value="org.thymeleaf.extras.tiles2.spring4.web.view.ThymeleafTilesView" />
<property name="templateEngine" ref="templateEngine" />
<property name="characterEncoding" value="UTF-8" />
</bean>
<bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
<property name="templateResolver" ref="templateResolver" />
<property name="additionalDialects">
<set>
<bean class="org.thymeleaf.extras.tiles2.dialect.TilesDialect" />
</set>
</property>
</bean>
我的瓷砖定义是:
<tiles-definitions>
<definition name="layout" template="layout">
<put-attribute name="header" value="header" />
<put-attribute name="menu" value="menu" />
<put-attribute name="footer" value="footer" />
<put-attribute name="body" />
</definition>
<definition name="usersView" extends="layout">
<put-attribute name="body" value="pages :: users" />
</definition>
</tiles-definitions>
这会给我以下错误吗:
Error resolving template "pages", template might not exist or might not be accessible by any of the configured Template Resolvers
<definition name="usersView" extends="layout">
<put-attribute name="body" value="users" />
</definition>
它工作得很好。
所以问题是Thymeleaf能接受我的文件夹结构吗?如果是,怎么做?
是的,可以使用viewNames属性
只需将spring-servlet.xml更改为
<bean id="templateResolver"
class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
<property name="prefix" value="/WEB-INF/" />
<property name="suffix" value=".html" />
<property name="characterEncoding" value="UTF-8" />
<property name="templateMode" value="HTML5" />
</bean>
<bean id="tilesConfigurer"
class="org.thymeleaf.extras.tiles2.spring4.web.configurer.ThymeleafTilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles-defs.xml</value>
</list>
</property>
</bean>
<bean id="tilesViewResolver" class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
<property name="viewClass"
value="org.thymeleaf.extras.tiles2.spring4.web.view.ThymeleafTilesView" />
<property name="templateEngine" ref="templateEngine" />
<property name="characterEncoding" value="UTF-8" />
<property name="order" value="1" />
<property name="viewNames" value="templates/*,pages/*" />
</bean>
<bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
<property name="templateResolver" ref="templateResolver" />
<property name="additionalDialects">
<set>
<bean class="org.thymeleaf.extras.tiles2.dialect.TilesDialect" />
</set>
</property>
</bean>
和您的瓷砖定义
<tiles-definitions>
<definition name="layout" template="templates/layout">
<put-attribute name="header" value="templates/header" />
<put-attribute name="menu" value="templates/menu" />
<put-attribute name="footer" value="templates/footer" />
<put-attribute name="body" />
</definition>
<definition name="pages/usersView" extends="layout">
<put-attribute name="body" value="pages/users" />
</definition>
</tiles-definitions>
<property name="prefix" value="/WEB-INF/" />
<property name="viewNames" value="templates/*,pages/*" />
现在我得到了另一个错误: 有人能帮我解释为什么我必须依赖thymleaf来提供html内容,为什么我会得到这个错误。
第一次发帖时,请纠正我的错误。虽然我没有偏离文件夹结构的默认映射,但我认为我应该在设置中添加。 每当我请求/home映射时,就会得到一个TemplateInputException HomeController类:
我使用mvc+java HttpServlet+Thymeleaf模板,但它是错误的。文件home.html已经存在。 我的代码如下: 与Freemarker我使用类似,它做得很好。 非常感谢
我正在学习Spring Boot、Thymeleaf和Spring Data JPA。我为自己创建了一个示例项目,在那里我可以学习所有这些东西。我在这里不问很多问题,因为通常这是一些愚蠢的错误,我对此感到厌恶。然而,我被这一个错误卡住了,我别无选择。 这是我的项目结构:项目结构 这是我的控制器: 整个应用程序可以在这里看到。我还得到警告:找不到模板位置:classpath:/templates/(
pom文件: 当我尝试打开localhost:8080/users页面时 Whitelabel错误页面此应用程序没有针对/Error的显式映射,因此您将其视为一种后退。 我不知道如何添加页眉和页脚
这个问题以前被问过,但我没有解决我的问题,我得到了一些奇怪的功能。 如果我将文件放在静态目录中,如下所示: 我在浏览器中得到以下错误: 在这一点上,我不知道是怎么回事。有人能给我一些建议吗? 我在中遗漏了一个错误,但我仍然得到相同的错误