【发布时间】:2010-05-18 03:13:16
【问题描述】:
是否可以将 sitemesh 和 tile 2.1 与 spring mvc 集成? 我想用瓦片合成布局,然后用sitemesh装饰。
我用的是这样的瓷砖。
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/layouts/layouts.xml</value>
<value>/WEB-INF/views.xml</value>
<value>/WEB-INF/hotels/views.xml</value>
<value>/WEB-INF/hotels/booking/views.xml</value>
<value>/WEB-INF/cliente/views.xml</value>
</list>
</property>
</bean>
然后我在xml中配置sitemesh。
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
然后我添加了装饰器
<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/styles">
<decorator page="application/themeManager/theme.jsp" name="theme">
<pattern>/spring/hotels/index</pattern>
</decorator>
</decorators>
但这并没有什么作用,我认为tiles避免到sitemesh来处理页面,如何做到这一点?
这个sitemesh.xml我只是使用示例自带的默认
<sitemesh>
<property name="decorators-file" value="/WEB-INF/decorators.xml"/>
<excludes file="${decorators-file}"/>
<!--<excludes file="/WEB-INF/decorators.xml"/>-->
<page-parsers>
<parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
</page-parsers>
<decorator-mappers>
<mapper class="com.opensymphony.module.sitemesh.mapper.PageDecoratorMapper">
<param name="property.1" value="meta.decorator" />
<param name="property.2" value="decorator" />
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.FrameSetDecoratorMapper">
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.AgentDecoratorMapper">
<param name="match.MSIE" value="ie" />
<param name="match.Firefox" value="mozilla" />
<param name="match.Opera" value="opera" />
<param name="match.Lynx" value="lynx" />
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.PrintableDecoratorMapper">
<param name="decorator" value="printable" />
<param name="parameter.name" value="printable" />
<param name="parameter.value" value="true" />
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.RobotDecoratorMapper">
<param name="decorator" value="robot" />
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.ParameterDecoratorMapper">
<param name="decorator.parameter" value="decorator" />
<param name="parameter.name" value="confirm" />
<param name="parameter.value" value="true" />
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.FileDecoratorMapper">
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
<param name="config" value="${decorators-file}" />
</mapper>
</decorator-mappers>
</sitemesh>
【问题讨论】:
-
你的 sitemesh.xml 文件是什么样的?
-
就像发行版附带的默认值一样,我注意到如果我将配置添加到不受 spring 管理的路径,它也可以工作,如果我使用 org.springframework.web .servlet.view.InternalResourceViewResolver 它的工作原理
标签: spring spring-mvc tiles sitemesh tiles2