Supponiamo di avere una pagina che elenca gli oggetti su una tabella e che devo inserire un modulo per filtrare la tabella. Il filtro viene inviato come Ajax GET a un URL del genere: http://foo.com/system/controller/action?page=1&prop1=x&prop2=y&prop3=z
E invece di avere molti parametri sul mio controller come:
@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 supponiamo di avere MyObject come:
public class MyObject {
private String prop1;
private String prop2;
private String prop3;
//Getters and setters
...
}
Voglio fare qualcosa del tipo:
@RequestMapping(value = "/action")
public @ResponseBody List<MyObject> myAction(
@RequestParam(value = "page", required = false) int page,
@RequestParam(value = "myObject", required = false) MyObject myObject,) { ... }
È possibile? Come lo posso fare?
@ModelAttribute
, Spring MVC Form Handling Example . Basta google " Gestione dei moduli Spring MVC " e otterrai tantissimi tutorial / esempi. Ma assicurati di utilizzare il modo moderno di gestione dei moduli, ovvero Spring v2.5 +
@ModelAttribute
in Spring MVC