Visualizzazione dei risultati da 1 a 3 su 3

Hybrid View

  1. #1

    [Java Moduli Thymeleaf]Gestire due modelli @ModelAttribute in un form?

    Buonasera,
    Come da titolo e' possibile in un form,
    Gestire più modelli?
    Ho creato per ovviare, un nuovo modello,
    Che eredita le proprietà,
    Ma vorrei far meglio se possibile....
    jabjoint

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    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) ?).

    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Ma vorrei far meglio se possibile....
    Si fa generalmente una sola classe che "modella" il form da gestire.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ok, grazie mille.
    jabjoint

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.