使用Thymeleaf和Tiles2和Spring

时间:2012-08-29 16:29:43

标签: spring spring-mvc thymeleaf

我正在尝试使用Thymeleaf integration with Apache Tiles 2.x。他们有一个指导如何让它工作,所以我跟着它,但现在我被卡住了。

基本上,这种集成允许使用JSP和Thymeleaf模板,根据指南,您应该能够通过在标题定义文件中设置type属性来判断使用哪个。默认选项是Thymeleaf。

因为我正在慢慢地从JSP迁移,所以绝大多数模板都是JSP,所以我需要使用这个type属性,但是我得到一个错误,我的标题定义文件无效:

org.apache.tiles.definition.DefinitionsFactoryException: XML error reading definitions.
at org.apache.tiles.definition.digester.DigesterDefinitionsReader.read(DigesterDefinitionsReader.java:332)
at org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO.loadDefinitionsFromURL(BaseLocaleUrlDefinitionDAO.java:276)
at org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.loadDefinitionsFromURLs(CachingLocaleUrlDefinitionDAO.java:251)
at org.apache.tiles.definition.dao.ResolvingLocaleUrlDefinitionDAO.loadDefinitionsFromURLs(ResolvingLocaleUrlDefinitionDAO.java:65)
at org.apache.tiles.definition.dao.ResolvingLocaleUrlDefinitionDAO.loadParentDefinitions(ResolvingLocaleUrlDefinitionDAO.java:58)
at org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.loadDefinitionsFromURLs(CachingLocaleUrlDefinitionDAO.java:239)
at org.apache.tiles.definition.dao.ResolvingLocaleUrlDefinitionDAO.loadDefinitionsFromURLs(ResolvingLocaleUrlDefinitionDAO.java:65)
...

这是我的图块定义文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
       "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
       "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">

<tiles-definitions>
    <definition name="default" template="/WEB-INF/layouts/default.jspx" type="jsp">
    </definition>
</tiles-definitions>

如果删除DOCTYPE部分,我会收到相同的错误。

知道如何让它发挥作用吗?

1 个答案:

答案 0 :(得分:2)

type属性仅存在于<put-attribute/>元素中。相比之下,<definition/>元素要求将您的属性称为templateType

问候。