Ich habe durch die Frühlings-Dokumentation gegangen über @RequestBody
, zu wissen, und sie haben die folgende Erklärung gegeben:Was ist der Unterschied zwischen @RequestBody und @RequestParam?
Die
@RequestBody
Methodenparameter Anmerkung gibt an, dass ein Methodenparameter auf den Wert des HTTP-Anforderung Körpers 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 wandeln die Anfrage Körper der Methode Argument durch eine
HttpMessageConverter
verwenden.HttpMessageConverter
ist für die Konvertierung von der HTTP-Anforderungsnachricht in ein Objekt und die Konvertierung von einem Objekt in den HTTP-Antworttext zuständig.
DispatcherServlet
unterstützt Annotations-basierte Verarbeitung unter Verwendung derDefaultAnnotationHandlerMapping
undAnnotationMethodHandlerAdapter
. Im Frühjahr 3.0 ist dieAnnotationMethodHandlerAdapter
erweitert die@RequestBody
und hat folgendeHttpMessageConverter
s standardmäßig registriert zu unterstützen:...
aber meine Verwirrung ist der Satz, den sie in der doc geschrieben haben, die
istDer @RequestBody-Methodenparameter annotation gibt an, dass ein Methodenparameter an den Wert des HTTP-Anforderungshauptteils gebunden werden soll.
Was bedeuten sie? Kann mir jemand ein Beispiel geben?
Die @RequestParam
Definition im Frühjahr doc ist
Annotation, die das sollte ein Verfahren angibt Parameter auf einen Web-Anfrage Parameter gebunden sein. Unterstützt für annotierte Handlermethoden in Umgebungen
Servlet
undPortlet
.
Ich bin zwischen ihnen verwirrt worden. Bitte hilf mir mit einem Beispiel, wie sie sich voneinander unterscheiden.
möglich Duplikat [Spring @RequestBody Lernen und @RequestParam] (http: // Stackoverflow. com/questions/3337350/learning-springs-requestbody-and-requestparam) – kryger
@kryger .Es ist nicht doppelt, weil ich meine Forschung habe, habe ich durch den Frühling doc.Ich habe für das Beispiel fragen. Ich habe Ihnen die Definition gegeben. Ich möchte ein Beispiel dafür, was zwischen ihnen unterschiedlich ist. Die obige Frage hat nicht genügend Erklärung dafür geliefert, also glaube ich nicht, dass es abgelehnt werden sollte. –