spring mvc中@PathVariable / 带斜杠方式获取

 更新时间:2021年08月23日 11:24:14   作者:eulers  
这篇文章主要介绍了spring mvc中@PathVariable / 带斜杠方式获取,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

spring mvc @PathVariable / 带斜杠方式获取

遇上这个问题,百度google了一下,抄袭里面的内容,可以实现,在此备忘

实例

@RequestMapping(value = "/download/{value1}/**", method = RequestMethod.GET)
public void getValue(@PathVariable String value1, HttpServletRequest request) throws CommonException {
String value = extractPathFromPattern(request);
}
private String extractPathFromPattern(final HttpServletRequest request) {
String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
String bestMatchPattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
return new AntPathMatcher().extractPathWithinPattern(bestMatchPattern, path);
}

springMVC @PathVariable中间带/问题处理

问题

请求地址/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
    }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java中BigDecimal类的使用详解

    Java中BigDecimal类的使用详解

    这篇文章主要介绍了Java中BigDecimal类的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 深入学习java枚举的应用

    深入学习java枚举的应用

    本篇是关于java深入提高学习的相关知识,介绍了枚举的应用等方面内容,有兴趣的朋友参考学习下吧。
    2018-01-01
  • SpringBoot Profile多环境配置方式

    SpringBoot Profile多环境配置方式

    这篇文章主要介绍了SpringBoot Profile多环境配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • 关于Java锁性能提高(锁升级)机制的总结

    关于Java锁性能提高(锁升级)机制的总结

    这篇文章主要介绍了关于Java锁性能提高(锁升级)机制的总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • java学习教程之常量折叠详解

    java学习教程之常量折叠详解

    这篇文章主要给大家介绍了关于java学习教程之常量折叠的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • JAVA设计模式之组合模式原理与用法详解

    JAVA设计模式之组合模式原理与用法详解

    这篇文章主要介绍了JAVA设计模式之组合模式,简单说明了组合模式的原理,并结合实例分析了java组合模式的具体用法,需要的朋友可以参考下
    2017-08-08
  • 基于Spring中的事务@Transactional细节与易错点、幻读

    基于Spring中的事务@Transactional细节与易错点、幻读

    这篇文章主要介绍了基于Spring中的事务@Transactional细节与易错点、幻读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • AndroidHttpClient使用Cookie应用分析

    AndroidHttpClient使用Cookie应用分析

    今天想把一个用使用了HttpClient的自动签到小程序移植到Android上,还好Android的SDK自带了HttpClient的包.当然也可以继续使用DefaultHttpClient,但用为Android定制的AndroidHttpClient自然更好
    2012-11-11
  • spring与mybatis整合配置文件

    spring与mybatis整合配置文件

    本文通过实例代码给大家介绍了spring与mybatis整合配置文件的方法,需要的朋友参考下吧
    2017-09-09
  • Spring Cloud Gateway入门解读

    Spring Cloud Gateway入门解读

    本篇文章主要介绍了Spring Cloud Gateway入门解读,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04

最新评论