前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring RequestMapping检测路径匹配核心类AntPathMatcher

Spring RequestMapping检测路径匹配核心类AntPathMatcher

作者头像
干货满满张哈希
发布2021-04-12 14:12:57
4490
发布2021-04-12 14:12:57
举报
文章被收录于专栏:干货满满张哈希

本文基于Spring 5.0+

项目某些页面是通过后台映射的,匹配映射路径时,有那种路径参数匹配。其中一个定义好的路径匹配是:

代码语言:javascript
复制
/{corporationName}_{vendorName}/{shopName}_with_{retailer_name}?g={goodsId}

当时没有仔细看,其实{goodsId}也应该作为路径参数,可能是前端想要拿到这个id,放在url参数的位置比较容易拿到,所以就放在这个位置。

想验证下这样自由的url是否能匹配成功,看了下spring-webmvcspring-core的源码,找到url匹配核心类PathMatcher,目前还是只有古老的AntPathMatcher这一种实现。

我们来试下,是否能匹配成功:

代码语言:javascript
复制
new AntPathMatcher().match("/{corporationName}_{vendorName}/{shopName}_with_{retailer_name}?g={goodsId}","/corporation 1 _ vendor 2/shop 1_with_retailer 2?g=good1")

这个返回是true

看来可以匹配,实装后,发现访问路径返回404.查看源码,发现HttpRequest的url里面是不带url参数的,诶呀,把这个给忘了,修改成 @RequestMapping("/{corporationName}_{vendorName}/{shopName}_with_{retailer_name}")之后,成功

但是,还是在设计的时候,把goodId设置在路径上面,比较好。虽然前端可能会麻烦一点儿

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档