Załóżmy, że mam stronę z listą obiektów w tabeli i muszę umieścić formularz w celu filtrowania tabeli. Filtr jest wysyłany jako Ajax GET na taki adres URL: http://foo.com/system/controller/action?page=1&prop1=x&prop2=y&prop3=z
I zamiast mieć wiele parametrów na moim kontrolerze, takich jak:
@RequestMapping(value = "/action")
public @ResponseBody List<MyObject> myAction(
@RequestParam(value = "page", required = false) int page,
@RequestParam(value = "prop1", required = false) String prop1,
@RequestParam(value = "prop2", required = false) String prop2,
@RequestParam(value = "prop3", required = false) String prop3) { ... }
Załóżmy, że mam MyObject jako:
public class MyObject {
private String prop1;
private String prop2;
private String prop3;
//Getters and setters
...
}
Chcę zrobić coś takiego:
@RequestMapping(value = "/action")
public @ResponseBody List<MyObject> myAction(
@RequestParam(value = "page", required = false) int page,
@RequestParam(value = "myObject", required = false) MyObject myObject,) { ... }
Czy to możliwe? Jak mogę to zrobić?
@ModelAttribute
, Spring MVC Przykład obsługi formularzy . Wystarczy google „ Obsługa formularzy Spring MVC ”, a otrzymasz mnóstwo samouczków / przykładów. Ale pamiętaj, aby użyć nowoczesnego sposobu obsługi formularzy, tj. Spring v2.5 +
@ModelAttribute
na wiosnę MVC