Ich habe die Spring-Dokumentation durchgesehen, um etwas darüber zu erfahren @RequestBody, und sie haben die folgende Erklärung gegeben:
Die
@RequestBodyAnnotation 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.HttpMessageConverterist verantwortlich für die Konvertierung von der HTTP-Anforderungsnachricht in ein Objekt und die Konvertierung von einem Objekt in den HTTP-Antworttext.
DispatcherServletunterstützt annotationsbasierte Verarbeitung mitDefaultAnnotationHandlerMappingundAnnotationMethodHandlerAdapter. In Spring 3.0 wird dasAnnotationMethodHandlerAdaptererweitert, um das zu unterstützen,@RequestBodyund die folgendenHttpMessageConverters 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 @RequestParamDefinition im Frühjahr doc ist
Anmerkung, die angibt, dass ein Methodenparameter an einen Webanforderungsparameter gebunden werden soll. Unterstützt für kommentierte Handlermethoden in
ServletundPortletUmgebungen.
Ich bin zwischen ihnen verwirrt. Bitte helfen Sie mir mit einem Beispiel, wie sie sich voneinander unterscheiden.