स्प्रिंग 3 संदर्भ सिखाता है:विधि तर्क स्तर पर @ModelAttribute एनोटेशन का अर्थ क्या है?
जब आप एक विधि पैरामीटर पर रखें,
@ModelAttribute
विशिष्ट, एनोटेट विधि पैरामीटर
करने के लिए एक मॉडल विशेषता नक्शे मुझे यह समझ में नहीं आता जादू जादू, क्योंकि मुझे यकीन है कि मॉडल ऑब्जेक्ट के उपनाम (ModelMap
का उपयोग रिटर्न प्रकार के रूप में करते हुए महत्वपूर्ण मान) अनुरोध हैंडलर विधि निष्पादित करने के बाद दृश्य में पारित किया गया है। इसलिए जब अनुरोध हैंडलर विधि निष्पादित करता है मॉडल ऑब्जेक्ट का नाम विधि पैरामीटर में मैप नहीं किया जा सकता है।
इस विरोधाभास को हल करने के लिए मैं stackoverflow गया और this विस्तृत उदाहरण पाया। उदाहरण के लेखक ने कहा:
// "personAttribute" मॉडल JSP
ऐसा लगता है से नियंत्रक करने के लिए पारित किया गया है, वह वसंत संदर्भ से सम्मोहित कर रहा है ...
आकर्षण को दूर करने के लिए मैंने अपने पर्यावरण में अपने नमूना ऐप को तैनात किया और विधि MainController.saveEdit()
से @ModelAttribute एनोटेशन को क्रूर रूप से काट दिया। नतीजतन आवेदन बिना किसी बदलाव के काम करता है! तो मैं निष्कर्ष निकाला हूं: @ModelAttribute
तर्क के फ़ील्ड में वेब फ़ॉर्म के फ़ील्ड मानों को पारित करने के लिए एनोटेशन की आवश्यकता नहीं है। फिर मैं सवाल पर अटक गया: @ModelAttribute
एनोटेशन का क्या अर्थ है? यदि एकमात्र मतलब मॉडल ऑब्जेक्ट के लिए उपनाम सेट करना है, तो ModelMap
पर ऑब्जेक्ट को स्पष्ट रूप से जोड़ने से बेहतर क्यों है?