Struts 使用 spring 排除模式

Struts exclude pattern with spring

来这里之前我做了很多功课,感谢您对我的问题的任何指点

我需要 运行 一个合并(未集成)的应用程序,它基本上是 struts2 和 Spring 以及一些基本 servlet 的组合版本。能够在 tomcat 中无错误地获取合并的 war 文件。我的意图是基于 url 模式路由到适当的框架(一个很好的问题:)

我们将单个上下文称为 myctx

我的情况:

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<constant name="struts.action.excludePattern" value="/myctx/springurl1/.*?"/>

如果我在过滤器映射中将 url 模式保留为 /*,则可以访问所有原始 struts2 操作,但无法从 spring 相关

如果我将 struts 过滤器 url 模式设为 /myctx/.*?,则可以从原始 struts 组件访问注释,但 spring url 可访问。

在此感谢任何指点

如果使用 struts 2.3.16 和 spring 3

很重要

还有其他方法吗?在 springframework less url 模式上枚举

提前致谢

-CJ

要将 spring servlet 与 Struts 2 框架分开使用,您应该使用 struts.xml 中的配置设置从过滤器映射中排除 servlet。

<constant name="struts.action.excludePattern" value="/myctx/?.*"/>

web.xml (The DispatcherServlet) 中的 servlet 映射:

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/myctx/*</url-pattern>
</servlet-mapping>