Иногда мы отправляем HTTP-запрос POST с полезной нагрузкой POST на конечную точку с переменной URL, например:
[POST] http://example.com/update-item?itemid=123456
Чтобы получить полезную нагрузку POST в классе контроллера Spring, я могу сделать следующее:
@RequestMapping(value = "/update-item", method = RequestMethod.POST)
public String updateItem(@RequestBody Item json) {
//some logics
return "/update-item-result";
}
Однако, в то же время, как я могу получить переменную из URL-адреса (т.е. itemid в приведенном выше примере) даже для method = RequestMethod.POST?
Я вижу много примеров Spring MVC в Интернете, либо получающих переменные GET из URL-адреса, либо переменные POST из полезной нагрузки, но я никогда не видел, чтобы оба в действии.
Вы можете использовать несколько HTTP-запросов, указав атрибут метода в виде массива в аннотации @RequestMapping.
@RequestMapping(value = "/update-item", method = {RequestMethod.POST,RequestMethod.GET})
public String updateItem(@RequestBody Item json) {
//some logics
return "/update-item-result";
}