Ich habe die Spring-Dokumentation durchgesehen, um etwas darüber zu erfahren @RequestBody
, und sie haben die folgende Erklärung gegeben:
Die
@RequestBody
Annotation der Methodenparameter gibt an, dass ein Methodenparameter an den Wert des HTTP-Anforderungshauptteils gebunden werden soll. Zum Beispiel:
@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 Methodenargument
HttpMessageConverter
.HttpMessageConverter
ist verantwortlich für die Konvertierung von der HTTP-Anforderungsnachricht in ein Objekt und die Konvertierung von einem Objekt in den HTTP-Antworttext.
DispatcherServlet
unterstützt annotationsbasierte Verarbeitung mitDefaultAnnotationHandlerMapping
undAnnotationMethodHandlerAdapter
. In Spring 3.0 wird dasAnnotationMethodHandlerAdapter
erweitert, um das zu unterstützen,@RequestBody
und die folgendenHttpMessageConverter
s sind standardmäßig registriert:...
aber meine Verwirrung ist der Satz, den sie in dem Dokument geschrieben haben, das heißt
Die Annotation des @RequestBody-Methodenparameters gibt an, dass ein Methodenparameter an den Wert des HTTP-Anforderungshauptteils gebunden werden soll.
Was meinen sie damit? Kann mir jemand ein Beispiel geben?
Die @RequestParam
Definition im Frühjahr doc ist
Anmerkung, die angibt, dass ein Methodenparameter an einen Webanforderungsparameter gebunden werden soll. Unterstützt für kommentierte Handlermethoden in
Servlet
undPortlet
Umgebungen.
Ich bin zwischen ihnen verwirrt. Bitte helfen Sie mir mit einem Beispiel, wie sie sich voneinander unterscheiden.