spring - spring - 在URL路径变量值内忽略"/"

我的情况很奇怪,我有一个API端点,它必须接受列出给定endpoint可用的所有资源,并且列出特定资源的请求,endpoint如下所示:

 
/v1/patients



 

当我将上述数字作为路径变量传递时,我将无法获得所需的资源,相反,Spring会将斜杠“/”作为分隔符。

例如:


/v1/patients/2019/patientname/October/27




有没有可能忽略所有斜杠?

时间:

你可以尝试:


@GetMapping("/v1/patients/{year}/{name}/{month}/{day}")


public ResponseEntity<Patient> getPatient(@PathVariable Integer year,


 @PathVariable String name,


 @PathVariable String month,


 @PathVariable Integer day) {



 String patientNumber = year +"/" + name +"/" + month +"/" + day;


 ...


}



下面可能可以工作:


@GetMapping("/v1/patients/**")


public ResponseEntity<Patient> getPatient(HttpServletRequest request) {


 String patientNumner = (String) 


 request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);


 ...


}



你是否尝试使用转义符/传递斜线?

...