org.springframework.web.servlet.mvc.Controller
के handleRequest एक HttpServletRequest
और HttpServletResponse
पैरामीटर के रूप में लेता है। इनमें से, आप यूआरआई टुकड़े को संसाधित नहीं कर सकते हैं। इस प्रकार, नियंत्रक यूआरआई टुकड़े के आधार पर अनुरोधों को नियंत्रित करने के लिए उपयुक्त नहीं है।
मेरे आवेदन में, मैंने वसंत नियंत्रक को बहुत ही समान अवधारणा लागू की। मेरे आवेदन में अभी भी "विचार" और "मॉडल" की धारणा है। प्रत्येक दृश्य एक अलग वर्ग में लागू किया जाता है और पृष्ठ के केंद्रीय ब्लॉक में प्रदर्शित होता है। मुझे लगता है कि वर्ग के लिए यूआरएल प्रसंस्करण के तर्क को केंद्रीकृत करना चाहता था, तो मैं एक वर्ग AbstractControllerEntry
बनाया: इस तरह के ConstantEntry
, PrefixEntry
और RegexEntry
के रूप में कई सुविधा उपवर्गों साथ
public static abstract class AbstractControllerEntry {
public abstract boolean matches(String fragment);
public abstract void open(MainWindow window, String fragment);
}
।
प्रत्येक व्यू क्लास में एक स्थिर विधि है, जो AbstractControllerEntry
देता है।सभी प्रविष्टियों का संग्रह MyController
कक्षा (स्प्रिंग एमवीसी नियंत्रक नहीं) के अंदर एक स्थिर सरणी में रखा जाता है। खंड परिवर्तन पर (UriFragmentUtility देखें), मैं सभी प्रविष्टियों को पुन: सक्रिय करता हूं, और पहले, जो मेल खाता है, मैं खुले कॉल करूंगा। कोई अन्य तर्क, जैसे मॉडल ऑब्जेक्ट ढूंढना, दृश्य वर्ग के अंदर है, AbstractControllerEntry
इम्प्मेंटेशन में।
Additionaly, व्यू क्लास में यूआरआई टुकड़ा उत्पन्न करने के लिए एक और स्थिर विधि है, ताकि एक दृश्य के प्रत्येक संदर्भ एक वर्ग के लिए वास्तविक संदर्भ है, यह टूटी हुई लिंक का समाधान है। और प्रत्येक दृश्य में वर्तमान दृश्य के लिए एक टुकड़ा प्राप्त करने के लिए उदाहरण विधि है, जिसे मजबूती बढ़ाने के लिए नियंत्रक प्रविष्टि से मेल खाने के लिए चेक किया जाता है।
मैं बहुत पूर्ण वसंत आवेदन का संदर्भ दूंगा: http://dev.vaadin.com/svn/incubator/SpringApplication/ – rochb
मैं स्प्रिंग एमवीसी के साथ वाडिन एकीकरण की भी तलाश कर रहा था। आपके द्वारा दिया गया उत्तर वसंत (निर्भरता इंजेक्शन इत्यादि) के साथ एकीकरण है। मुझे इनमें से कोई भी दिखाई नहीं देता ... धन्यवाद –
मैं यह भी जोड़ूंगा: http://dev.vaadin.com/ticket/4132 और http://vaadin.com/forum/-/message_boards/message/112083 लेकिन यह मूल रूप से उसी –