
Originariamente inviata da
jabjoint
Come da titolo e' possibile in un form,
Gestire più modelli?
Tecnicamente sì, è possibile. Considera queste due forme:
codice:
@PostMapping("/xyz")
public String postXyz(
@ModelAttribute("uno") ClasseUno modelloUno,
@ModelAttribute("due") ClasseDue modelloDue) {
//...
return "nomeTemplate";
}
codice:
@PostMapping("/xyz")
public String postXyz(Model model) {
ClasseUno modelloUno = //......
ClasseDue modelloDue = //......
model.addAttribute("uno", modelloUno);
model.addAttribute("due", modelloDue);
return "nomeTemplate";
}
Dal punto di vista del model, non c'è differenza. Il template si vede arrivare un "modello" composto da due chiavi "uno" e "due" associate ai due oggetti. Per il template non cambia nulla.
La vera differenza è che @ModelAttribute fa il binding con i dati dalla request, ovvero cerca di iniettare i dati dalla request nell'oggetto (creato al volo se non c'è già nel model) in base a nome/tipo delle proprietà che trova (es. xyz?nome=Andrea .... c'è un setNome(String) ?).

Originariamente inviata da
jabjoint
Ma vorrei far meglio se possibile....
Si fa generalmente una sola classe che "modella" il form da gestire.