2011-01-05 15 views
7

मैं एमवीसी ढांचे के साथ कुछ अनुभव से आया हूं और हाल ही में मैंने वसंत में रुचि लेने लगे। मुझे लगता है कि यह अब तक एक अच्छा ढांचा है, जो मैंने अभी तक देखा है। वैसे भी, मेरे पिछले अनुभवों में मुझे विशेष रूप से नियंत्रकों की संरचना के लिए एक अलग प्रोग्रामिंग शैली में उपयोग किया जाता था। जिस तरह से मैं नियंत्रकों को नियोजित करने के लिए इस्तेमाल किया गया था अलग था। निस्संदेह मैं किसी भी तरह से उनसे अनुरोध करता था (विभिन्न कार्यों के साथ structs के बारे में सोचो), लेकिन फिर मुझे वास्तव में पसंद आया था कि आप अन्य नियंत्रकों को क्रियाएं पारित कर सकते हैं, तो वे "सक्रिय" नियंत्रक बने रहेंगे और वे जिम्मेदार होंगे अगले अनुरोध को संभालने के लिए, यह HTTP अनुरोध से या किसी और चीज़ से आ सकता है। मैंने इसका आनंद लिया क्योंकि उपयोगकर्ता सत्र की स्थिति को स्वचालित तरीके से रखने के लिए बहुत अच्छा था, कोड को साफ और अलग-अलग स्थितियों में अलग-अलग स्थितियों को अलग करना। अब मैंने स्प्रिंग वेब एमवीसी पढ़ा है और दस्तावेज़ केवल उन नियंत्रकों के बारे में बात करते हैं जो अनुरोधों का उत्तर देते हैं, लेकिन वे राज्य नहीं रखते हैं और नियंत्रकों को चेन करने के बारे में कोई शब्द नहीं है (अग्रेषण के अलावा) और राज्य प्रतिधारण।वसंत नियंत्रक प्रोग्रामिंग शैली

आप इन विषयों को वसंत में कैसे संभालेंगे, क्या कोई अलग तरीका है, या क्या मुझे अपने स्वयं के राज्य नियंत्रक और राज्य/क्रिया वर्गों को लागू करना चाहिए?

मुझे आशा है कि मेरा प्रश्न पर्याप्त स्पष्ट होगा और मैं इसकी व्यापकता के लिए क्षमा चाहता हूं।

+0

आप किस स्थिति में इस तरह के चेनिंग नियंत्रक रखना चाहते हैं? – OrangeDog

+0

मैं आमतौर पर प्रत्येक सरल गतिविधि को एक नियंत्रक से जोड़ता हूं, ताकि मैं उस क्रिया के तर्क को अलग कर सकूं (कई प्रश्न, विचार और डेटा कुशलताएं)।फिर जब उपयोगकर्ता किसी अन्य गतिविधि में प्रवेश करता है तो मैं आमतौर पर सबकुछ नियंत्रक को भेजता हूं जो करता है। इस प्रकार यह आसान है और आप कोड का पुन: उपयोग कर सकते हैं। – gotch4

+0

चलिए एक उदाहरण बनाते हैं: मान लें कि मेरे पास एक नियंत्रक है जो टेलीफोन नंबरों के साथ एक दृश्य दिखाने का ख्याल रखता है और चलो आप उन्हें चुनते हैं, जोड़ते हैं, संपादित करते हैं या हटाते हैं। किसी भी परिस्थिति में जहां मुझे अपने ऐप में एक नंबर चुनना है, मैं इस नियंत्रक को अग्रेषित करूंगा, फिर इसे उठाए गए नंबर को वापस कर दें। यही मेरा मतलब है – gotch4

उत्तर

5

स्प्रिंग एमवीसी में आप अनुरोध/आवेषण सत्र स्कोप्ड बीन्स को अग्रेषित करने वाले स्टेटलेस नियंत्रकों का उपयोग कर सकते हैं।

लेकिन यदि यह एक अच्छा विचार है या दृढ़ता से आपके उपयोग के मामले पर निर्भर नहीं है। - मैं यह केवल तभी करूंगा यदि मैं इस "अजीब" नियंत्रकों में से कुछ ही हूं। - यदि आपके पास उनमें से बहुत सारे हैं तो मुझे लगता है कि एक अन्य समाधान की तलाश करना उचित है। (उदाहरण के लिए वसंत के साथ जेएसएफ)

+0

सत्र स्कॉप्ड बीन्स का उदाहरण? – gotch4

+1

सत्र स्कोप्ड बीन्स बीन्स हैं (ए.के.ए. जावा बीन्स) thare HttpSession में संग्रहित हैं। इसे पढ़ें: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping-arguments – DwB

8

जावा में, राज्य/स्टेटलेस वेब ढांचे के बीच का अंतर आमतौर पर क्रिया-आधारित और घटक-आधारित ढांचे के बीच अंतर के रूप में वर्णित किया जाता है।

दोनों दृष्टिकोण मान्य हैं, लेकिन आम तौर पर जब आप एक फ्रेमवर्क का चयन आप यह कर के उस ढांचे के तरीके के साथ फंस रहे हैं: (और Struts 2)

  • Struts:

    लोकप्रिय कार्रवाई फ़्रेमवर्क

  • Stripes
  • Spring MVC (आप Spring WebFlow के माध्यम से वार्तालाप स्थिति जोड़ सकते हैं)

लोकप्रिय घटक फ़्रेमवर्क:

(Cour की हैं दोनों श्रेणियों में,

+0

धन्यवाद, लेकिन मैं ढांचा का चयन नहीं कर रहा हूं, मैं वसंत का उपयोग करना चाहता हूं, इसलिए मेरा प्रश्न स्प्रिंग – gotch4

+0

@ gotch4 धन्यवाद में प्रोग्रामिंग प्रथाओं के बारे में अधिक था? तो धन्यवाद देने का आपका तरीका एक डाउनवोट है? –

+0

@ gotch4 और मैंने आपके प्रश्न का उत्तर दिया। जवाब है "स्प्रिंग एमवीसी इस तरह से काम नहीं करता है" –

संबंधित मुद्दे