我们有一个使用sitemesh的Struts2项目。我们有2个装饰器但由于某些未知原因,sitemesh总是默认为catchall模式。我们已经将配置简化为必需品,省略了spring-security,从web.xml中删除了过滤器,并最小化了struts配置。没有(已记录)错误。 我已经包含了下面的配置文件。
Decorators.xml - 使用下面的配置,当尝试打开page2.html时,使用service.jsp。如果我们将/ *模式移动到默认的装饰器配置,则使用default.jsp。
<decorators defaultdir="/decorators">
<excludes>
</excludes>
<decorator name="default" page="default.jsp">
<pattern>/page2.*</pattern>
</decorator>
<decorator name="service" page="service.jsp">
<pattern>/page1.*</pattern>
<pattern>/*</pattern>
</decorator>
</decorators>
Struts.xml:
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.action.extension" value="html"/>
<package name="yr-default" extends="struts-default">
</package>
<package name="default" namespace="/" extends="yr-default">
<action name="page2">
<result>/test.jsp</result>
</action>
</package>
</struts>
Web.xml中
<web-app>
<display-name>prism</display-name>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>
com.opensymphony.sitemesh.webapp.SiteMeshFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<session-config>
<session-timeout>60</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
最后:sitemesh.xml
<sitemesh>
<property name="decorators-file" value="/WEB-INF/decorators.xml"/>
<excludes file="${decorators-file}"/>
<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.ConfigDecoratorMapper">
<param name="config" value="${decorators-file}"/>
</mapper>
</decorator-mappers>
</sitemesh>
使用的版本: - Sitemesh 2.4.2。 - Struts2 2.3.16.3
有没有人知道我们缺少什么?