我是靠谱客的博主 风趣野狼,最近开发中收集的这篇文章主要介绍springmvc使用@PathVariable路径匹配问题正则表达式不包含某些字符,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

自己最开始的时候也是一脸懵逼,第一想法也是spring拦截了,在spring配置中配置不拦截应该就OK了,最后还是发下自己很年轻,于是在网上搜索相关@PathVariable不拦截某些资源的文章,发现靠边的就两篇相关文章,大差不大,方法一样:

https://blog.csdn.net/ssbb1995/article/details/78118038

https://www.jianshu.com/p/5a0bbc2912a3

 

不过看头像,还想是同一个人,但是这哥们的解决方案显然不能满足我的要求,只有在实在没办法的时候,我才会这样做

 

我的想法是,能不能让请求不进入我的拦截器,spring的配置不行,那么我的通用请求呢?我的代码如下

@RequestMapping("/{dir}/{page}")
public String commomRedirect(@PathVariable(value = "dir") String dir, @PathVariable(value = "page") String page) {
	if (StringUtils.isBlank(page)) {
		return dir;
	} else {
		return "views/" + dir + "/" + page;
	}
}

于是我的第一个主意打到了@PathVariable ,看有没有相关属性,不接收某些目录的文件请求,但是没有找到;

我又想到,能不能从请求路径上来过滤呢,我的目光又盯着了@RequestMapping,结果没有让我失望,这里面可以写正则,以前还真没有注意过

引用以为哥们的文章:

正则表达式不包含某些字符

^: 以·····开头的字符串

$:以·····结尾的字符串

如:

    只包含数字字母: [0-9a-zA-Z]

    以数字开头: ^[0-9]

    以字母结尾:[a-zA-Z]$

而不包含数字字母:

    [^0-9a-zA-A] :那个开始符是写在中括号里面的!!

 

在这里,我终于找到了答案,最后我的代码更改为:

@RequestMapping("/{dir}/{page:[a-zA-Z_-]+}")
public String commomRedirect(@PathVariable(value = "dir") String dir, @PathVariable(value = "page") String page) {
	if (StringUtils.isBlank(page)) {
		return dir;
	} else {
		return "views/" + dir + "/" + page;
	}
}

有没有和我一样遇到这个问题的小伙伴?希望能帮你解决问题 

 

最后

以上就是风趣野狼为你收集整理的springmvc使用@PathVariable路径匹配问题正则表达式不包含某些字符的全部内容,希望文章能够帮你解决springmvc使用@PathVariable路径匹配问题正则表达式不包含某些字符所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部