2010-05-25 15 views
28

में मॉडलमैप उपयोग स्प्रिंग एमवीसी में एक साधारण मानचित्र के बजाय मॉडलमैप का उपयोग करने के लाभ क्या हैं। मैं कोड कार्यान्वयन में देखता हूं कि उन्होंने मानचित्र में जोड़े गए गुण के डेटाटाइप को फॉर्म पर उपलब्ध कराने के बजाय कुंजी के रूप में रखा है।वसंत

कोई भी उदाहरण के साथ समझा सकता है।

उत्तर

44

ModelMap उपवर्गों LinkedHashMap, और कुछ अतिरिक्त उपयुक्तता प्रदान करता है यह थोड़ा आसान नियंत्रकों

  • addAttribute द्वारा उपयोग करने के लिए सिर्फ एक मूल्य के साथ कहा जा सकता है बनाने के लिए, और नक्शे कुंजी तो प्रकार से अनुमान लगाया गया है।
  • addAttribute विधियां सभी ModelMap लौटती हैं, ताकि आप एक साथ बुलाए गए चेन विधि को कर सकें, उदा। modelMap.addAttribute('x', x).addAttribute('y',y)
  • addAttribute तरीकों की जाँच करता है कि मूल्यों अशक्त नहीं हैं
  • ModelMap के जेनेरिक प्रकार Map<String, Object> है, जो केवल एक है कि एक दृश्य के मॉडल के लिए समझ में आता है है पर तय हो गई है।

तो धरती को तोड़ने से कुछ भी नहीं, लेकिन कच्चे Map से थोड़ा सा अच्छा बनाने के लिए पर्याप्त है। वसंत आपको किसी एक का उपयोग करने देगा।

आप Model इंटरफ़ेस का भी उपयोग कर सकते हैं, जो addAttribute विधियों के अलावा कुछ भी नहीं प्रदान करता है, और इसे ExtendedModelMap कक्षा द्वारा कार्यान्वित किया जाता है जो स्वयं आगे की सुविधा जोड़ता है।

+1

बहुत अच्छा विवरण। मैं 'ModelMap.put' और 'ModelMap.addAttribute' विधियों के बीच अंतर जानना चाहता हूं। मुझे पता है कि पुट विधि उपलब्ध है क्योंकि यह LinkedHashMap को बढ़ाती है। क्या यह किसी भी तरीके का उपयोग करने के लिए प्रदर्शन में कोई फर्क पड़ता है। अग्रिम में धन्यवाद। –

+0

मैं यह इंगित करना चाहता हूं कि यह उत्तर अप्रैल, 2016: http://crunchify.com/spring-mvc-how-to-access-modelmap-values-in पर किसी अन्य वेबसाइट की पोस्ट पर शब्द-के-शब्द दिखा रहा है -एक-jsp / – ndurante

2

ModelMap.addAttribute NULL जांच करेंगे, ModelMap.put LinkedHashMap

0

ModalMap से विरासत है जब यूआई उपकरणों के साथ प्रयोग के लिए मॉडल डेटा के निर्माण में उपयोग के लिए फैली मानचित्र की LinkedHashMap

क्रियान्वयन। जंजीर कॉल और मॉडल विशेषता नामों की पीढ़ी का समर्थन करता है।

यह कक्षा सर्वलेट और पोर्टलेट एमवीसी दोनों के लिए जेनेरिक मॉडल धारक के रूप में कार्य करती है, लेकिन इनमें से किसी से भी बंधी नहीं है। जावा -5-आधारित इंटरफ़ेस संस्करण के लिए मॉडल इंटरफ़ेस देखें जो एक ही उद्देश्य पर कार्य करता है।