如何 create/call spring boot 中的 rest controller 同时具有路径和请求参数
How to create/call a rest controller in springboot with both path and request parameter
我在springboot中有这个rest controller方法
@GetMapping("/cghsHcoSearchText/cityId/{cityId}/hcoName/{hcoName}/treatmentName/{treatmentName}")
public String cghsHcoSearchText(@PathVariable String cityId, @RequestParam(name = "hcoName", required = false) String hcoName,
@RequestParam(name = "treatmentName", required = false) String treatmentName) {
return "Some Text";
}
它有一个 PathVariable 和 2 个可选的 Request 参数。
现在,当我使用 treatmentName = null 点击 url 时,我得到 Whitelabel Error Page
http://localhost:8082/cghs/cghsHcoSearchText/cityId/011?hcoName=Guru?
任何帮助将不胜感激。
我们不应将请求参数指定为 URL 映射中的占位符。占位符中只应提及路径参数。分享一个代码片段和相应的 URL 这将有助于理解这个
@GetMapping("hello/{id}")
public ResponseEntity<Void> printInfo(@PathVariable("id") String id,
@RequestParam(required = false, name = "name") String name) {
System.out.println(id + " " + name);
return new ResponseEntity<>(HttpStatus.OK);
}
这里id作为路径参数出现,name作为请求参数出现,映射注释中没有提到。
URL 看起来像
http://localhost:8080/hello/234?name=pappi
我在springboot中有这个rest controller方法
@GetMapping("/cghsHcoSearchText/cityId/{cityId}/hcoName/{hcoName}/treatmentName/{treatmentName}")
public String cghsHcoSearchText(@PathVariable String cityId, @RequestParam(name = "hcoName", required = false) String hcoName,
@RequestParam(name = "treatmentName", required = false) String treatmentName) {
return "Some Text";
}
它有一个 PathVariable 和 2 个可选的 Request 参数。
现在,当我使用 treatmentName = null 点击 url 时,我得到 Whitelabel Error Page
http://localhost:8082/cghs/cghsHcoSearchText/cityId/011?hcoName=Guru?
任何帮助将不胜感激。
我们不应将请求参数指定为 URL 映射中的占位符。占位符中只应提及路径参数。分享一个代码片段和相应的 URL 这将有助于理解这个
@GetMapping("hello/{id}")
public ResponseEntity<Void> printInfo(@PathVariable("id") String id,
@RequestParam(required = false, name = "name") String name) {
System.out.println(id + " " + name);
return new ResponseEntity<>(HttpStatus.OK);
}
这里id作为路径参数出现,name作为请求参数出现,映射注释中没有提到。
URL 看起来像
http://localhost:8080/hello/234?name=pappi