当前位置:  开发笔记 > 编程语言 > 正文

Spring MVC拦截器映射问题

如何解决《SpringMVC拦截器映射问题》经验,为你挑选了2个好方法。

我有这段XML:


    
        
        
    
    
        
        
    
    
        
        
    

我有三个不同的拦截器是有原因的,虽然StaticsHandlerInterceptor只是preHandle返回的方法true(对于我所有的静态内容(js,css等)).第二个是AJAX请求.第三个是实际页面.我所看到的是静态和AJAX拦截器被调用时应该被调用; 但是,使用它们,总是会调用页面拦截器.我只想要为页面调用页面拦截器.我该如何做到这一点?



1> millhouse..:

假设您为页面使用一致的命名方案,请使用 - 例如,如果您的外部可见页面URL以此结尾.html,请指定:


虽然拥有这样的"扩展"并不是非常RESTful - 您可能更喜欢使用如下方案:

GET of /user/{id}=返回用户{id}的用户对象,JSON格式

POST to /user/{id}=从JSON对象更新用户对象

GET to /user/page/{id}=返回用户{id}的HTML页面

等等

然后你可以使用一个很好的可读,语义映射,如:


这将适用于任何"深度"的URL结构.

编辑:好的所以看起来使用mvc:interceptors样式的bean声明似乎不会给你表达你需要通过模式而不是包含来指定排除.

从我在本博客中可以看出,使用更详细的HandlerMapping方法将允许您反转匹配逻辑 - 您可以指定匹配的内容以获得您需要的内容:



    0


    
        /statics/**
        /data/**
    


    
        
    

(对于上述片段的格式化道歉,Markdown认为这/**是一个评论:-)



2> alfredaday..:

mvc:拦截器现在支持排除特定的映射.目前它仅在Spring 3.2.0.M2中提供.您可以在JIRA项目(现已解决)中找到更多相关信息:https://jira.springsource.org/browse/SPR-6570

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有