मेरे पास कई कक्षाओं में फैले कई नियंत्रक विधियां हैं। प्रत्येक विधि Model
ऑब्जेक्ट लेती है और मेरी सभी विधियां मॉडल में कुछ साझा गुणों को पॉप्युलेट करती हैं (अधिकतर नेविगेशन बार डिस्प्ले को नियंत्रित करें)। क्या वसंत में 'आधार' विधि को प्लग करने का कोई तरीका है? मुझे एक तरीका चाहिए जो मेरी साझा संपत्तियों को पॉप्युलेट कर सकता है और फिर विशिष्ट नियंत्रक विधि (या उस मामले के लिए उलट) में जा सकता है। क्या कोई जानता है कि ऐसा कैसे करें?स्प्रिंग फ्रेमवर्क एमवीसी बेस कंट्रोलर विधि
उत्तर
HandlerIntercepto आर की तरह लगता है एक अच्छा दृष्टिकोण हो सकता है।
यह थोड़ा एओपी जैसा है - आप एक कक्षा को परिभाषित कर सकते हैं जिसमें PreHandle
या PostHandle
विधि है, और कॉन्फ़िगर करें कि यह कौन से अनुरोध चलेंगे। आपके मामले में आप शायद PostHandle
चाहते हैं, क्योंकि इससे आपको ModelAndView तक पहुंच मिल जाएगी, ताकि आप इसे साझा किए गए आइटमों के साथ पॉप्युलेट कर सकें।
ले जा सकते हैं वसंत और वसंत MVC में कई विस्तार अंक के होते हैं:
HandlerInterceptor
- प्रत्येक हैंडलर विधि- Spring AOP अवरोधन करने का आसान तरीका - इससे पहले कि/सलाह के बाद सभी अपने नियंत्रकों मिलान
WebArgumentResolver
- शायद आप किसी भी तरह से तर्कों को हल करने और नियंत्रक को कॉल करने से पहले उन्हें संसाधित कर सकते हैं?
तर्क आप लागू कर रहे हैं एक क्रॉस कटिंग चिंता यह है कि आम तौर पर विशेष रूप से विचारों के लिए युग्मित नहीं कर रहा है है, तो मैं एक इंटरसेप्टर का उपयोग कर के बजाय कार्यात्मक-पदानुक्रम नियंत्रक बनाने का सुझाव देते हैं। जब अपवाद मैपिंग और सत्र डेटा प्रबंधन/जीवन चक्र जैसी चीजों की बात आती है तो नियंत्रक पदानुक्रमों को सौदा करना मुश्किल हो सकता है। इसके अलावा, दृश्य स्तर वह है जहां आपको ग्राहक मांगों को बदलने के लिए समय के साथ चीजों को बदलने की आवश्यकता होती है, इसलिए भविष्य के सबूत कार्यात्मक-पदानुक्रम होने वाला नहीं है।
org.springframework.web.servlet.HandlerInterceptor
में 'पोस्टहैंडल' विधि है जो आपको अनुरोध, नियंत्रक जिसने अनुरोध को संभाला है, और मॉडलमैप तक पहुंच प्रदान करता है। आपको बस इतना ही चाहिए। यदि आपको नियंत्रक से कुछ नियंत्रण की आवश्यकता है, तो आप हमेशा मेटा-डेटा को इंगित कर सकते हैं, उदाहरण के लिए, हेडर का कौन सा वर्ग इसका उपयोग करता है (फिर भविष्य में जब आपको इसे बदलना होगा, यह एक एक्सएमएल या एनोटेशन में एक स्ट्रिंग है, । बजाय बदल रहा है क्या वर्ग आप से विरासत और सभी कि इसके संदर्भ में)
आप उन्हें इस तरह चालू करें:
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<bean class="a.package.MyHandlerInterceptor"/>
</list>
</property>
</bean>
- 1. स्प्रिंग 3 एमवीसी कंट्रोलर एकीकरण परीक्षण - विधि
- 2. स्प्रिंग एमवीसी कंट्रोलर
- 3. स्प्रिंग एमवीसी कंट्रोलर प्रतिक्रिया
- 4. एमवीसी बेस कंट्रोलर और निनजेक्ट
- 5. एएसपी.नेट एमवीसी: कंट्रोलर विधि
- 6. स्प्रिंग फ्रेमवर्क, PUT विधि
- 7. अजाक्स अनुरोध - स्प्रिंग कंट्रोलर
- 8. स्प्रिंग कंट्रोलर (एनोटेशन संस्करण) में इनिट विधि
- 9. स्प्रिंग एमवीसी
- 10. बेस कंट्रोलर क्लास
- 11. एएसपीनेट एमवीसी ओवरराइड बेस कंट्रोलर में ऑनएक्सप्शन एप्लिकेशन_इरर
- 12. एनोटेटेड @ कंट्रोलर
- 13. एमवीसी-कंट्रोलर टाइपपेक.एक्सएमएल एमवीसी
- 14. टी 4 एमवीसी बेस कंट्रोलर में डिफॉल्ट कन्स्ट्रक्टर नहीं है
- 15. स्प्रिंग एमवीसी
- 16. स्प्रिंग फ्रेमवर्क
- 17. स्प्रिंग एमवीसी
- 18. स्प्रिंग एमवीसी-आधारित साइट (एनोटेशन कंट्रोलर) पर स्टेटस संदेश
- 19. स्प्रिंग एमवीसी: कंट्रोलर के लिए एकाधिक यूआरएल मैपिंग
- 20. स्प्रिंग एमवीसी
- 21. स्प्रिंग 3 एमवीसी नियंत्रक विधि बनाना लेनदेन
- 22. वाडिन और स्प्रिंग एमवीसी एकीकरण
- 23. एएसपी.नेट एमवीसी - कंट्रोलर
- 24. एएसपी.नेट एमवीसी: स्ट्रक्चरिंग कंट्रोलर
- 25. मैं एएसपी.नेट एमवीसी कंट्रोलर
- 26. स्प्रिंग फ्रेमवर्क
- 27. स्प्रिंग एमवीसी
- 28. स्प्रिंग एमवीसी
- 29. स्प्रिंग एमवीसी
- 30. एएसपी.नेट एमवीसी कंट्रोलर लाइफसाइकिल
आपको बहुत बहुत धन्यवाद! – Nik