欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springMVC @PathVariable中间带/问题处理 博客分类: spring springspringMVC@PathVariable 

程序员文章站 2024-03-25 16:16:16
...
问题:请求地址/username/resourceUrl/methodName,其中username可能有也可能没有,resourceUrl中会带/,这个时候要使用@PathVariable,不能正确匹配controller

解决思路:把resourceUrl处理成一个不带/的参数即可
1、约定好/替换方案,比如请求方把/全部替换为--
2、通过url编码解码处理 / 经过编码变成%2F 把resourceUrl编码后,这个时候发现还是不能请求到正确的方法,因为到spring时已经自动解码了。可以把%2F再编一次码变成%252F。%编码后是25
/**
*/abc/xiaoming/h5/user.json/get
*/
@ResponseBody
    @RequestMapping(method=RequestMethod.POST ,value="/abc/{username}/{resourceUrl}/{methodName}")
    public String dubboMock(HttpServletResponse response,@PathVariable String username,@PathVariable String resourceUrl,@PathVariable String methodName){
		
    }
3、放弃使用PathVariable,手动去处理
 /**
*/abc/xiaoming/h5/user.json/get
*/
@ResponseBody
    @RequestMapping(method=RequestMethod.POST ,value="/abc/**")
    public String dubboMock(HttpServletResponse response,HttpServletResponse request){
	String url = request.getRequestURI();
        //处理url
    }