संक्षेप में, मैं कुछ की तरह चाहते हैंकैसे स्प्रिंग MVC के साथ विधि तर्क (पैरामीटर) के रूप में एक सत्र विशेषता पारित करने के लिए
- पठनीयता
- इकाई परीक्षण
संक्षेप में, मैं कुछ की तरह चाहते हैंकैसे स्प्रिंग MVC के साथ विधि तर्क (पैरामीटर) के रूप में एक सत्र विशेषता पारित करने के लिए
मुझे solution मिला।
विचार AnnotationMethodHandlerAdapter
है, जो एक कस्टम एनोटेशन संभालती के लिए एक कस्टम WebArgumentResolver
रजिस्टर करने के लिए है - @SessionAttribute
(या @SessionParam
)।
पोस्ट किए गए कोड पर एक नोट यह है कि param.getParameterName()
का उपयोग किया जा सकता है यदि value
निर्दिष्ट नहीं है।
क्या होगा यदि आपके पास @SessionAttribute (आवश्यक = झूठा) उपयोगकर्ता उपयोगकर्ता है। एक स्ट्रिंग के रूप में लौटाया गया डिफ़ॉल्ट मान उपयोगकर्ता के साथ मेल नहीं खाता है। क्या आप इसे किसी भी तरह प्रबंधित कर सकते हैं? – mickthompson
आप रिज़ॉल्वर में कुछ भी प्रबंधित कर सकते हैं। :) – Bozho
भले ही हम @ModelAttribute ("user") उपयोगकर्ता उपयोगकर्ता को विधि पैरामीटर के रूप में उपयोग करते हैं और फिर अपनी विधि में उपयोगकर्ता ऑब्जेक्ट का उपयोग करते हैं, तो यह सत्र से उपयोगकर्ता को अपडेट करेगा। विशेषता नाम को सत्र विशेषता नाम "उपयोगकर्ता" से मेल खाना है।
public String myMethod(@ModelAttribute("user") User user){
System.out.println(user.getDetails());
}
गूगल के जरिये पहुंचने वालों के लिए, कम से कम 4.3.2.RELEASE के रूप में, वसंत शामिल एक @SessionAttribute
एनोटेशन निर्मित:
public String action(
@SessionAttribute(required=false, name="user") User user) {
// ...
}
एक कस्टम समाधान आवश्यक नहीं रह गया है।
संबंधित: http://stackoverflow.com/questions/2213974/spring-mvc-session-attribute-access – Bozho
सत्र-स्कोप बीन्स आपको क्या चाहिए? – skaffman
संख्या। मैं उन्हें विधि पैरामीटर के रूप में कैसे पास करूंगा? और मैं उन्हें इंजेक्ट नहीं कर सकता, क्योंकि नियंत्रक सिंगलटन है। – Bozho