2010-07-27 8 views
16

ModelMapModelAndView के लिए बस स्प्रिंग 3 में नया नाम है?ModelAndView और ModelMap के बीच क्या अंतर है?

क्या स्प्रिंग 3 में कार्यक्षमता बदलती है?

का उपयोग कर एक स्प्रिंग 3 एप्लिकेशन में इस कोड पर विचार करें एक ModelMap:

@RequestMapping(value = "/order", method = RequestMethod.GET) 
public final String setup(final ModelMap model) 
{ 
    model.addAttribute(ORDER, new Order()); 
    return "setup"; 
} 

मैं पता है कि बराबर उपयोग ModelAndView के यहाँ एक पुराने स्प्रिंग अनुप्रयोग में होगा चाहते हैं? स्प्रिंग 2.5 में काम करने के लिए क्या इसे ModelMap से ModelAndView पर नाम बदलने की आवश्यकता होगी?

उत्तर

21

ModelAndView, जैसा कि इसके नाम से पता चलता है, इसमें मॉडल का नाम, और दृश्य का नाम शामिल है। अनुबंध में ModelMap, केवल मॉडल के बारे में जानकारी शामिल है।

आपका उदाहरण

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) 
{ 
    return new ModelAndView("setup", ORDER, new Order()); 
} 
+0

बारे में नई वसंत 3 है: अगर मैं वापस जाने के केवल मॉडल मैप, तो कैसे दृश्य दिया जाता है? न्यूबी यहाँ ... –

+1

@ अभिजीत: वसंत अनुरोध यूआरआई से दृश्य नाम का अनुमान लगाएगा। – skaffman

+0

अगर मैं स्पष्ट रूप से दृश्य नाम निर्दिष्ट करना चाहता हूं? ताकि मैं अलग-अलग अनुरोधों के लिए एक ही नियंत्रक का उपयोग कर सकूं। – coder247

8

@ coder247 मुझे किसी ने ठीक कर लें मैं गलत हूँ के रूप में ("पुराने" वसंत में) लिखा होता है, लेकिन यदि आप एक मॉडल मैप वापस जाने के लिए की जरूरत नहीं है। अपने मॉडल को अपने मॉडल मैप में जोड़ें और बस एक स्ट्रिंग वापस करें जो व्यू नाम है।

यह एक उत्कृष्ट लेख में बताया गया है कि इस और अधिक कैसे करना है ... http://www.mkyong.com/spring-mvc/spring-mvc-form-handling-annotation-example/

+1

+ 1 इंगित करने के लिए 1 ** "आपको मॉडलमैप वापस करने की आवश्यकता नहीं है" **। –

संबंधित मुद्दे