Was ist der Unterschied zwischen @RequestParam
y @PathVariable
bei der Behandlung von Sonderzeichen?
+
wurde angenommen von @RequestParam
als Raum.
Im Fall von @PathVariable
, +
wurde angenommen als +
.
Was ist der Unterschied zwischen @RequestParam
y @PathVariable
bei der Behandlung von Sonderzeichen?
+
wurde angenommen von @RequestParam
als Raum.
Im Fall von @PathVariable
, +
wurde angenommen als +
.
@PathVariable - must be placed in the endpoint uri and access the query parameter value from the request
@RequestParam - must be passed as method parameter (optional based on the required property)
http://localhost:8080/employee/call/7865467
@RequestMapping(value=“/call/{callId}", method = RequestMethod.GET)
public List<Calls> getAgentCallById(
@PathVariable(“callId") int callId,
@RequestParam(value = “status", required = false) String callStatus) {
}
http://localhost:8080/app/call/7865467?status=Cancelled
@RequestMapping(value=“/call/{callId}", method = RequestMethod.GET)
public List<Calls> getAgentCallById(
@PathVariable(“callId") int callId,
@RequestParam(value = “status", required = true) String callStatus) {
}
Beide Anmerkungen verhalten sich genau gleich.
Nur 2 Sonderzeichen '!' und '@' werden von den Annotationen @PathVariable und @RequestParam akzeptiert.
Um das Verhalten zu überprüfen und zu bestätigen, habe ich eine Spring-Boot-Anwendung erstellt, die nur einen Controller enthält.
@RestController
public class Controller
{
@GetMapping("/pvar/{pdata}")
public @ResponseBody String testPathVariable(@PathVariable(name="pdata") String pathdata)
{
return pathdata;
}
@GetMapping("/rpvar")
public @ResponseBody String testRequestParam(@RequestParam("param") String paramdata)
{
return paramdata;
}
}
Auf die folgenden Anfragen erhielt ich dieselbe Antwort:
!@ wurde als Antwort in beiden Anfragen empfangen
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.