Sitemesh2 + Struts2忽略模式

时间:2015-07-10 09:39:42

标签: java struts2 sitemesh

我们有一个使用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

有没有人知道我们缺少什么?

0 个答案:

没有答案