spring mvc 定义拦截器为何有的请求地址拦截不到?

黄文祥 发布于 2013/03/07 13:05
阅读 5K+
收藏 3

定义一个拦截器,在controller中定义了几个url,发现conDemo的url能被拦截,不知道为什么/xx/xx/xx这样多“/” 就拦截不住?

web.xml 中配置的url-pattern是“/” ,请指导!

@RequestMapping(value = "/conDemo")
    public String conDemo()
    {
        return "demo/conDemo";
    }

    @RequestMapping(value = "/xx/xx/xx")
    public String xxx()
    {
        System.out.println("xxxx");
        return "xxx";
    }
加载中
0
黄文祥
黄文祥

终于找到问题了,是mvc:interceptors的path配置问题,之前是*,对于/xx/xx/xx这样的path无效。现在修改成/**/**  这样就可以进行配置了


<mvc:interceptors>
		<mvc:interceptor>
			<mvc:mapping path="/**/**"/>
			<bean class="com.xxx.framework.interceptor.RolePathHandlerInterceptor" />
		</mvc:interceptor>
	</mvc:interceptors>


0
xmut
xmut
上面的代码只是Controller,不是拦截器的代码,你要别人怎么帮你 ⊙﹏⊙b汗
黄文祥
黄文祥
上面是controller的方法,我的意思是说请求这2个地址xx的地址不进入拦截器而是直接进入controller的方法。
0
zerohh
zerohh

你的意思是跳转至 /xx/xx/x Controller 不起作用?

贴段 页面代码来看看。。。

黄文祥
黄文祥
请求/xx/xx/xx地址 是能到controller的xx方法,而是没有进入拦截器
0
爱吃大肉包
爱吃大肉包
应该不会吧, 我测试过应该可以
黄文祥
黄文祥
配置"/*" 也是一样的。
0
爱吃大肉包
爱吃大肉包

你可以用配置试试 比如

<bean id="/do/do/indexControl.do" class="org.aa.aa.aa"></bean>

0
爱吃大肉包
爱吃大肉包

如果这样还不行,可以自己写个sevlet试试,是不是路径问题,写个sevlet把<url-pattern>/*</url-pattern>,然后打印一串字符看看

0
zerohh
zerohh

引用来自“爱吃大肉包”的答案

你可以用配置试试 比如

<bean id="/do/do/indexControl.do" class="org.aa.aa.aa"></bean>

+1
0
3_14159265359
3_14159265359

@hwxiang 请问一下,如果用/**会把静态文件也拦截下来,你是怎么处理的呀。

y
ylmotol7
最好是启用tomcat的默认servlet,配置一下资源的后缀,不进入spring拦截器,应该会快点吧
返回顶部
顶部