解决@PathVariable获取路径中带有“/”斜杠的问题
问题:访问路径http://192.168.10.243:1018/hpt/v2/photo/link/2021/7/headimage/super18909261952.jpg,需要获取/link/2021/7/headimage/super18909261952.jpg值
解决方案:
@RequestMapping(value = “/v2/photo/{photoName}/**”, produces = “/;charset=utf-8”, consumes = “/;charset=utf-8”)
public void getImageFromNetByUrl(@PathVariable String photoName, HttpServletRequest request, HttpServletResponse response) throws Exception {
final String pathq =
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,pathq);
String moduleName;
if(null!= arguments&&!arguments.isEmpty()){
moduleName = photoName +'/'+ arguments;
} else {
moduleName = photoName;
}
System.out.println("moduleName"+moduleName);
}
moduleName就是需要的值;