比如我写个spring mvc的拦截器,我除了登录login和main页面不拦截,其他全部拦截。
<mvc:interceptors>这种方法我会。多个拦截器定义我也会。我就想知道如果我只想定义这2个页面不拦截我要怎么配置。比如我有1000个页面需要拦截,那我总不至于全都在配置文件里面配置拦截的吧?我只需要配置哪些不拦截就行,请问怎么写呢?谢啦!
----------------------
我估计是想想用拦截器做权限验证,login和main不需要验证吧。
我的方法是,定义一个@Auth,可以加些自定义的属性,比如访问这个方法所需要的权限。@Auth加在需要验证的controller方法上。
然后定义个AuthorizationInterceptor,实现 HandlerInterceptor接口中的preHandle方法,该方法中有个handler参数,对于一般的请求,该参数是HandlerMethod类型,可以从中获取到controller方法上的annotation,如果有@Auth则验证权限,否则放行。
你想的是拦截页面,我想的是拦截方法。因为页面也是由方法跳转过去的。
--------------------------
追问本身拦截页面就要写一个拦截器了。再写一个拦截器这样不是麻烦吗?我就想问问不能在验证上下功夫吗?比如路径匹配。pathMapping=""引号里面的内容匹配。亦或者是mappingUrl 在props里面value=“”这里用通配符匹配。可是我没做出来
回答我的意思是,拦截器只拦截对方法的访问,对页面的就不管了
-------------------------
追问是对方法的访问,可是一个方法对应的就是一个页面。其实我想问的也就是对方法的访问。比如我拦截的是/login,不就是login方法么,他对应的就是login页面。为什么不能直接路径匹配,只要改通配符就可以了。只不过通配符我不太会用。给的答案不是我想要的,所以我没设满意。但是管理员设了推荐答案。还是谢谢你的回答