struts2 mvc与spring mvc同时应用web.xml的配置问题

<!--springconfiguration--><context-param><param-name>contextConfigLocation</param-nam... <!-- spring configuration -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/spring-*.xml
</param-value>
</context-param>

<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

<!-- struts2 configuration -->
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
</filter>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>

<!-- restful configuration -->
<servlet>
<servlet-name>rest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/rest-servlet.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>rest</servlet-name>
<url-pattern>/restful/*</url-pattern>
</servlet-mapping>

以上是配置文件代码,我想用spring mvc的restful,ajax请求restful的地址,但是struts2会捕捉这个地址,我不想让struts过滤带/restful/的地址,该怎么做?
展开
 我来答
0613032107
2012-05-05 · TA获得超过347个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:211万
展开全部
你可以自己写一个filter,然后替换以上web.xml中的配置,这个filter继承org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter,然后在这个filter的方法中获取到当前请求的url地址,判断是否含有“/restful/”信息,如果含有则继续放行,否则使用struts中的方法
示例代码如下:
package junit.test;

import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.dispatcher.FilterDispatcher;

public class MyFilterDispatcher extends FilterDispatcher {

@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
String path = req.getRequestURI();
if(!path.contains("/restful/"))
super.doFilter(request, response, chain);//做struts的事情
else
chain.doFilter(request, response);//跳过struts
}

}
brian8271
2012-05-07 · TA获得超过238个赞
知道答主
回答量:26
采纳率:0%
帮助的人:11.7万
展开全部
添加过滤器
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式