2013-08-28 6 views

Antwort

54

Model ist eine Schnittstelle, während ModelMap eine Klasse ist.

ModelAndView ist nur ein Container für ein ModelMap und ein Ansichtsobjekt. Es ermöglicht einem Controller, beide als einen einzelnen Wert zurückzugeben.

+0

Nach rund Graben, der beste Grund, dass ich eine ModelMap (Art in vikas harle zu gebrauchen gefunden begraben Antwort und nicht im Beispiel gezeigt) ist, dass beim Hinzufügen von Attributen zu einer ModelMap der Attributname (Schlüssel) weggelassen werden kann und spring den Attributschlüssel basierend auf dem Attributwert generiert. https://docs.spring.io/spring/docs/4.3.14.RELEASE/spring-framework-reference/htmlsingle/#mvc-coc-modelmap – Tim

7

Modell: ist eine Schnittstelle, die vier addAttribute und eine merAttribute-Methode enthält.

ModelMap: implementiert Map-Schnittstelle. Es enthält auch die Map-Methode.

ModelAndView: Wie Bart erklärt, ermöglicht es eine Steuerung, beide als einen einzigen Wert zurückzugeben.

11

Unterschiede zwischen Modell, ModelMap und Modeland

Modell: Es ist eine Schnittstelle. Es definiert einen Halter für Modellattribute und wurde primär zum Hinzufügen von Attributen zum Modell entwickelt.

Beispiel:

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

ModelMap: Implementierung der Karte für die Verwendung, wenn sie mit UI tools.Supports gekettet Anrufen und die Erzeugung von Modell für die Verwendung von Modelldaten Aufbau Attributnamen.

Beispiel:

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

Modeland: lediglich Diese Klasse beide hält, um es möglich, dass ein Controller sowohl Modell und Ansicht in einem einzigen Rückgabewert zurückzukehren.

Beispiel:

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

Es ist ein bisschen komisch, diese erste Zeile einzubeziehen. Es ist nicht wichtig, wer du bist, solange du die Frage beantworten kannst. – Clonkex

+0

Sollten wir in den Methodenparametern Model oder ModelMap hinzufügen, um in der Ansicht darauf zuzugreifen. –

Verwandte Themen