Spring mvc 解析模板时出错";“第页”;,模板可能不存在,或者任何已配置的模板解析程序都无法访问该模板
我使用Spring和Thymeleaf以及具有以下结构的Tiles做了一个项目:Spring mvc 解析模板时出错";“第页”;,模板可能不存在,或者任何已配置的模板解析程序都无法访问该模板,spring-mvc,tiles,thymeleaf,Spring Mvc,Tiles,Thymeleaf,我使用Spring和Thymeleaf以及具有以下结构的Tiles做了一个项目: 我已经配置了Spring Servlet: <bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver"> <property name="prefix" value="/WEB-INF/templ
我已经配置了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>
但是当我将users.html页面移动到templates文件夹并将我的tiles定义为
<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>
/WEB-INF/tiles-defs.xml
你的瓷砖定义是什么
<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/*" />
到所需的文件夹以及您创建的任何新视图文件夹,也应在该属性中重定向或转发,并确保在Repo层中写入的查询可能不正确。如果是,请检查您的查询(使用CriteriaBuilder、CriteriaQuery、谓词)是否满足条件
在我的例子中,我试图从条件不满足的数据库中获取一个值。Wow,很有魅力,谢谢你提供的信息,我现在明白了
<property name="prefix" value="/WEB-INF/" />
<property name="viewNames" value="templates/*,pages/*" />