Struts排除带有弹簧的模式

时间:2015-06-09 17:55:12

标签: java spring spring-mvc servlets struts2

在来到专家面前我做了很多功课,感谢我对问题的任何指示

我需要运行一个合并(未集成)的应用程序,该应用程序基本上是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-pattern设为/myctx/.*?,则可以从原始struts组件访问注释,但可以访问spring url。

感谢这里的任何指示

如果使用struts 2.3.16和spring 3很重要

还有其他方法吗?在springframework上更少的url模式来枚举

提前感谢一堆

-CJ

1 个答案:

答案 0 :(得分:2)

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

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

web.xmlThe 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>