2013-08-28 36 views
45

Aşağıdaki Spring Framework sınıfları arasındaki ana farklar nelerdir?Model, ModelMap ve ModelAndView arasındaki farklar nelerdir?

    biz .jsp dosyalarındaki değerleri erişebilir Model.put(String,Object) kullanma ModelMap
  • ModelAndView

Model

  • ancak ModelMap.addAttribute(String,Object) da aynı şeyi yaptı. Bu sınıflar arasındaki farkı anlamıyorum.

  • +0

    etrafında ben bir ModelMap (tür kullanmak bulundu iyi bir neden kazma sonra http://stackoverflow.com/q/3344627/2607501 – Prancer

    cevap

    54

    Model bir arabirim iken ModelMap bir sınıftır.

    ModelAndView, yalnızca ModelMap ve görüntüleme nesnesi için bir kapsayıcıdır. Bir denetleyicinin hem tek bir değer olarak dönmesine izin verir.

    +0

    Olası yinelenen vikas Harle yıllarda gömüldü örnekte gösterilip gösterilmiyor), bir ModelMap'a nitelik eklerken, öznitelik ismini (tuşunu) bırakabilir ve yayın özellik değerine bağlı olarak öznitelik anahtarını oluşturacaktır. Https://docs.spring.io/spring/docs/4.3.14.RELEASE/spring-framework-reference/htmlsingle/#mvc-coc-modelmap – Tim

    7

    Model: bir arabirim, dört addAttribute ve bir tekÖrnekleme yöntemini içerir.

    ModelMap: Harita arabirimini uygular. Ayrıca Harita yöntemini içerir.

    ModelAndView: Bart'ın açıkladığı gibi, bir denetleyicinin hem tek bir değer olarak geri dönmesini sağlar. Model

    Modeli ModelMap ve ModelAndView arasında

    11

    Farklılıklar: Bir Arayüz olduğunu. Model nitelikleri için bir tutucu tanımlar ve öncelikle modele nitelik eklemek için tasarlanmıştır.

    Örnek:

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

    ModelMap Kullanım için Haritası Uygulama modelinde UI tools.Supports zincirli aramalar ve üretim öznitelik adları ile kullanım için örnek verileri oluşturmak.

    Örnek:

    @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: Bu sınıf yalnızca tutan hem mümkün bir kontrol düzeni tek bir dönüş değeri modeli ve görünümü hem de dönüş yapmak için.

    Örnek:

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

    Bu ilk satırı eklemek biraz garip. Sanki soruyu cevaplayabildiğin kadar uzun süredir kimsenin önemi yok. – Clonkex

    +0

    Model veya ModelMap'ı görünümde ona erişmek için yöntem parametrelerine eklemeliyiz. –

    İlgili konular