Можно различать разные кнопки отправки, используя их атрибут name
, и запросы маршрутизации, инициированные этими кнопками, к различным методам обработчика, используя атрибуты params
, равные @RequestMapping
. Например, весной 3:
<input type = "submit" name = "saveRequest" value = "Save" />
<input type = "submit" name = "deleteRequest" value = "Delete" />
.
@RequestMapping(value = "/foo", method = RequestMethod.POST,
params = {"saveRequest"})
public String saveFoo(@ModelAttribte Foo foo, BindingResult result) { ... }
// Only "id" field is bound for delete request
@RequestMapping(value = "/foo", method = RequestMethod.POST,
params = {"deleteRequest"})
public String deleteFoo(@RequestParam("id") long id) { ... }
Более "подход RESTful" заключался бы в размещении разных кнопок отправки в разных формах с method = "PUT"
и method = "DELETE"
и различении запросов по методу (хотя для этого требуется обходной путь с HiddenHttpMethodFilter
).