Suponha que eu tenha uma página que lista os objetos em uma tabela e preciso colocar um formulário para filtrar a tabela. O filtro é enviado como um Ajax GET para um URL assim: http://foo.com/system/controller/action?page=1&prop1=x&prop2=y&prop3=z
E em vez de ter muitos parâmetros no meu controlador, como:
@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) { ... }
E supondo que eu tenha o MyObject como:
public class MyObject {
private String prop1;
private String prop2;
private String prop3;
//Getters and setters
...
}
Eu quero fazer algo como:
@RequestMapping(value = "/action")
public @ResponseBody List<MyObject> myAction(
@RequestParam(value = "page", required = false) int page,
@RequestParam(value = "myObject", required = false) MyObject myObject,) { ... }
É possível? Como eu posso fazer isso?
@ModelAttribute
, Spring MVC Form Handling Example . Basta pesquisar no " Spring MVC form handling " e você terá vários tutoriais / exemplos. Mas não se esqueça de usar a maneira moderna de manipulação de formulários, ou seja, Primavera v2.5 +
@ModelAttribute
no Spring MVC