好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

spring boot @PathVariable传递带反斜杠参数 / 的处理

我就废话不多说了,大家还是看完整的代码吧~

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

@RequestMapping (value = "/modules/{moduleBaseName}/**" , method = RequestMethod.GET)

@ResponseBody

public String moduleStrings( @PathVariable String moduleBaseName, HttpServletRequest request) {

   final String path =

    request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE).toString();

   final String bestMatchingPattern =

    request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE).toString();

   String arguments = new AntPathMatcher().extractPathWithinPattern(bestMatchingPattern, path);

   String moduleName;

   if ( null != arguments && !arguments.isEmpty()) {

    moduleName = moduleBaseName + '/' + arguments;

   } else {

    moduleName = moduleBaseName;

   }

   return "module name is: " + moduleName;

}

补充:springboot的PathVariable接收参数值带点号问题

问题

?

1

2

3

4

@RequestMapping (value = "/{version}" ,method = RequestMethod.GET)

  public String demo( @PathVariable String version){

    return version;

  }

如果version是1.0.0,则返回1.0,这俨然不是我们所期望的。

解决

?

1

2

3

4

@RequestMapping (value = "/{version:.+}" ,method = RequestMethod.GET)

   public String demo( @PathVariable String version){

     return version;

   }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

原文链接:http://cn.voidcc测试数据/question/p-hdnhwour-ve.html

查看更多关于spring boot @PathVariable传递带反斜杠参数 / 的处理的详细内容...

  阅读:26次