2013-08-28 19 views

risposta

54

Model è un'interfaccia mentre ModelMap è una classe.

ModelAndView è solo un contenitore sia per ModelMap sia per un oggetto di visualizzazione. Permette a un controller di restituire entrambi come un singolo valore.

+0

Dopo aver scavato intorno, la ragione migliore che ho trovato per usare un ModelMap (sorta di sepolto nella Vikas Harle di risposta e non mostrato nell'esempio) è che quando si aggiungono attributi a una ModelMap, è possibile omettere il nome dell'attributo (chiave) e molla genererà la chiave dell'attributo in base al valore dell'attributo. https://docs.spring.io/spring/docs/4.3.14.RELEASE/spring-framework-reference/htmlsingle/#mvc-coc-modelmap – Tim

7

Modello: è un'interfaccia che contiene quattro addAttribute e un metodo merAttribute.

ModelMap: implementa l'interfaccia Mappa. Contiene anche il metodo Mappa.

ModelAndView: come spiega Bart consente a un controller di restituire entrambi come un valore singolo.

11

Differenze tra modello, ModelMap, e ModelAndView

modello: Si tratta di un'interfaccia. Definisce un supporto per gli attributi del modello e progettato principalmente per l'aggiunta di attributi al modello.

Esempio:

@RequestMapping(method = RequestMethod.GET) 
    public String printHello(Model model) { 
      model.addAttribute("message", "Hello World!!"); 
      return "hello"; 
     } 

ModelMap: Attuazione della mappa da utilizzare per la costruzione di dati del modello per l'uso con tools.Supports UI incatenato chiamate e la generazione del modello nomi degli attributi.

Esempio:

@RequestMapping("/helloworld") 
public String hello(ModelMap map) { 
    String helloWorldMessage = "Hello world!"; 
    String welcomeMessage = "Welcome!"; 
    map.addAttribute("helloMessage", helloWorldMessage); 
    map.addAttribute("welcomeMessage", welcomeMessage); 
    return "hello"; 
} 

ModelAndView: Questa classe contiene solo sia per rendere possibile un controller per ritornare sia modello e la vista in un singolo valore di ritorno.

Esempio:

@RequestMapping("/welcome") 
public ModelAndView helloWorld() { 
     String message = "Hello World!"; 
     return new ModelAndView("welcome", "message", message); 
    } 
+2

È un po 'strano includere quella prima riga. Ad esempio, non importa chi sei finché puoi rispondere alla domanda. – Clonkex

+0

Dovremmo aggiungere Model o ModelMap nei parametri del metodo per accedervi nella vista. –

Problemi correlati