Was ist der Unterschied zwischen @RequestBody und @RequestParam?

Ich habe die Spring-Dokumentation durchgesehen, um mehr über @ zu erfahre@RequestBody, und sie haben die folgende Erklärung gegeben:

Das@RequestBody method parameter annotation gibt an, dass ein Methodenparameter an den Wert des HTTP-Anforderungshauptteils gebunden werden soll. Beispielsweise

@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body, Writer writer) throws IOException {
  writer.write(body);
}

Sie konvertieren den Anforderungshauptteil mit einem @ in das MethodenargumenHttpMessageConverter. HttpMessageConverter ist für die Konvertierung von der HTTP-Anforderungsnachricht in ein Objekt und die Konvertierung von einem Objekt in den HTTP-Antworttext verantwortlich.

DispatcherServlet unterstützt annotationsbasierte Verarbeitung mit demDefaultAnnotationHandlerMapping undAnnotationMethodHandlerAdapter. Im Frühjahr 3.0 dasAnnotationMethodHandlerAdapter wird erweitert, um das @ zu unterstütz@RequestBody und hat das folgendeHttpMessageConverters standardmäßig registriert:

...

aber meine Verwirrung ist der Satz, den sie in dem Dokument geschrieben haben, das @ i

Die Anmerkung zum @RequestBody-Methodenparameter gibt an, dass ein Methodenparameter an den Wert des HTTP-Anforderungshauptteils gebunden werden soll.

Was meinen sie damit? Kann mir jemand ein Beispiel geben?

Das@RequestParam Definition im Frühjahr doc ist

Annotation, die angibt, dass ein Methodenparameter an einen Webanforderungsparameter gebunden werden soll. Unterstützt für mit Annotationen versehene Handlermethoden inServlet undPortlet Umgebungen.

Ich bin verwirrt zwischen ihnen geworden. Bitte helfen Sie mir mit einem Beispiel, wie sie sich voneinander unterscheiden.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage