В чем разница между @RequestBody и @RequestParam?
Я ознакомился с документацией Spring, чтобы узнать о@RequestBody
и они дали следующее объяснение:
@RequestBody
Аннотация параметра метода указывает, что параметр метода должен быть привязан к значению тела HTTP-запроса. Например:
@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body, Writer writer) throws IOException {
writer.write(body);
}
Вы преобразовываете тело запроса в аргумент метода, используяHttpMessageConverter
. HttpMessageConverter
отвечает за преобразование сообщения HTTP-запроса в объект и преобразование объекта в тело ответа HTTP.
DispatcherServlet
поддерживает обработку на основе аннотаций с использованиемDefaultAnnotationHandlerMapping
а такжеAnnotationMethodHandlerAdapter
, Весной 3.0AnnotationMethodHandlerAdapter
расширен для поддержки@RequestBody
и имеет следующееHttpMessageConverter
s зарегистрированы по умолчанию:
...
но мое замешательство это предложение, которое они написали в документе, который
Аннотация параметра метода @RequestBody указывает, что параметр метода должен быть привязан к значению тела HTTP-запроса.
Что они подразумевают под этим? Кто-нибудь может дать мне пример?
@RequestParam
определение весной док
Аннотация, которая указывает, что параметр метода должен быть связан с параметром веб-запроса. Поддерживается для аннотированных методов-обработчиков вServlet
а такжеPortlet
сред.
Я запутался между ними. Пожалуйста, помогите мне с примером того, как они отличаются друг от друга.