2010-08-09 7 views
11

प्राथमिक प्रश्न: यदि मेरा ऐप वर्तमान में Struts 1.x का उपयोग कर रहा है - और मैं किसी भी वसंत में माइग्रेट करने पर विचार कर रहा हूं एमवीसी-स्ट्रवर्क 2 के लिए एमवीसी या स्ट्रूट 2 - क्या किसी के बारे में कुछ भी है जो Struts1.2 से माइग्रेट करना आसान बनाता है?स्ट्रूट्स 1.2 से माइग्रेशन -> Struts2 बनाम स्प्रिंग-एमवीसी (मुख्य रूप से स्ट्रूट 1.2 टैगलिब समर्थन के साथ)

स्पष्ट करने के लिए, मैं नहीं पूछ रहा हूँ कि क्या SpringMVC या struts2 है बेहतर समग्र (देखते हैं मौजूदा क्यू के के एक नंबर पर इतना है कि पता इस) - बस जो एक Struts1.2 से करने के लिए स्थानांतरित करने के लिए आसान है।

मुद्दा यह है कि मैं सबसे एक प्रवास के नजरिए से में दिलचस्पी है: जारी (शुरुआत में) JSP पृष्ठों के भीतर struts1.x के taglib उपयोग करने के लिए की संभावना, पर struts2 (या SpringMVC के) एपीआई के लिए बदल रहा है, जबकि बैकएंड (दूसरे शब्दों में, क्या इनमें से कोई भी ढांचा प्लगइन के रूप में Struts1.x की टैगलिब का समर्थन कर सकता है)? [नोट: यह एक दीर्घकालिक समाधान के रूप में नहीं है - लेकिन एकीकरण दर्द को कम करेगा, क्योंकि जेएसपी को तुरंत पुनर्लेखित करने की आवश्यकता नहीं होगी। मुझे लगता है कि यह सवाल समझ में आता है - यदि नहीं, तो कृपया बताएं कि क्यों

इसके साथ ही, मुझे किसी अन्य माइग्रेशन फायदे में दिलचस्पी है।


कुछ पृष्ठभूमि:

मैं एक ऐप्स जिसका MVC परत Struts 1.2 के माध्यम से लिखा है पर काम कर रहा हूँ। हम स्प्रिंग आईओसी का भी उपयोग कर रहे हैं - हालांकि ऐप में स्ट्रैट्स लेयर और स्प्रिंग की डी सुविधाओं के बीच वर्तमान में मजबूत एकीकरण नहीं है। (नोट: यह कुछ है कि हम सही करने जब हम refactor पर योजना है, लेकिन मेरी समझ नियोजन का एक सा के साथ वह यह है कि - इस किया जा सकता है ठीक से/कुशलता से यहाँ तक कि जब एक स्प्रिंग आईओसी + struts2 संयोजन का उपयोग कर।)

कोडबेस में सुधार/पुन: सक्रिय करने के हिस्से के रूप में - हम एक और आधुनिक एमवीसी ढांचे में अपग्रेड करना चाहते हैं (ताकि कार्य/फॉर्म कक्षाओं की आवश्यकता को खत्म करने के लिए, और संभव होने पर एनोटेशन-आधारित कॉन्फ़िगरेशन का उपयोग करने के लिए) लेकिन समग्र क्लासिक रखें -एमवीसी शैली (यानी वर्तमान में जेएसएफ, टेपेस्ट्री, जीडब्ल्यूटी, फ्लेक्स, प्ले इत्यादि में छलांग लगाने में दिलचस्पी नहीं है। मैं समझता हूं कि ये बहुत ही अलग चीजें हैं - एक सामान्य विचार देने के लिए उन्हें एक साथ लंपाना ..) इसके अलावा , इच्छा उचित कर्षण/गति के साथ कुछ के साथ जाना है - तो सत्तारूढ़ एस उस कारण से बाहर निकलता है। ऐसा लगता है कि वसंत-एमवीसी & स्ट्रूट 2 को दावेदार के रूप में छोड़ दिया जाता है (हालांकि यदि समान शैली के साथ और मजबूत उद्योग कर्षण के साथ कुछ और है - हम निश्चित रूप से इसे मानेंगे)

यह दिया गया है कि इनमें से किसी एक को स्विच करना होगा काम की एक मूल राशि की आवश्यकता है - लेकिन योजना इसे मॉड्यूलर स्तर पर करना होगा। इसी कारण से, यदि इनमें से किसी भी स्ट्रैट्स 1.2 की टैगलिब समर्थित है - तो यह स्विचिंग/परीक्षण को अधिक आसान बना देगा (क्योंकि हम नए एपीआई में एक विशेष मॉड्यूल के "नियंत्रण" कार्यान्वयन को कोड कर सकते हैं - और दूसरा सर्वर पुराना स्ट्रूट 1 चलाता है एक ही जेएसपीएस का उपयोग करके .2 कार्यान्वयन। क्यूए परीक्षण तब "सेब से सेब" होगा। क्या यह समझ में आता है, या यह दृष्टिकोण (यदि यहां तक ​​कि व्यवहार्य) होगा तो इससे अधिक सिरदर्द हो जाएंगे?

भी जैसा ऊपर बताया गया है, जबकि मेरा प्राथमिक प्रश्न स्ट्रेट्स-एमवीसी या स्ट्रूट 2 के साथ struts1.2 की टैगलिब चलाने के बारे में है - मुझे Struts2-vs-Spring-MVC के लिए किसी भी अन्य माइग्रेशन फायदे में भी रूचि है।पढ़ सकते हैं और निम्न लेख की तुलना करने के

+0

हम एक समान अपग्रेड करने की तैयारी कर रहे हैं। क्या आपके पास कोई रोडब्लॉक/मुश्किल संक्रमण आया था? – Scott

उत्तर

3

मैंने इनमें से किसी भी ढांचे में स्ट्रूट 1 टैगलिब के लिए समर्थन नहीं देखा है।

कुछ मामूली struts2 फायदे: - http://struts.apache.org/2.2.3.1/docs/migration-strategies.html - http://struts.apache.org/2.2.3.1/docs/migration-tools.html

भी struts2 में एक Struts1 प्लगइन है कि आप struts2 में अपने कार्यों को चलाने के लिए अनुमति देता है struts2 को Struts1 से आवेदन पलायन के बारे में कुछ सरकारी संदर्भ हैं - http://struts.apache.org/2.2.3.1/docs/struts-1-plugin.html

दुर्भाग्यवश, यह वही संदर्भ कहता है कि आपको अपने पुराने जेएसपी को परिवर्तित करना है और यह एक आसान काम नहीं है।

1

या तो स्थानांतरित करना अनिवार्य रूप से वही राशि, और प्रकार का काम है।

जबकि वहाँ है एस 2 में एक Struts 1 प्लगइन है कि मौजूदा एस 1 कार्रवाई कक्षाओं के उपयोग के रूप में उल्लेख किया आप अभी भी अपने JSP फाइलों को फिर से लिखने की जरूरत है, और अभी भी आपके एप्लिकेशन सर्वलेट ढांचे के एस 1 के घनिष्ठ संबंध से ग्रस्त हैं अनुमति देता है।

+0

यह जांचें http://stackoverflow.com/questions/13314240/struts-2- माइग्रेशन-to-spring-mvc/31242289#31242289 – GeekOnJava

+0

@GeekOnJava क्यों ?! –

4

यदि स्ट्रेट एमवीसी में स्ट्रूट 1.2 माइग्रेट करते हैं, तो यदि हम WEB-INF/lib में struts.jar शामिल करते हैं, तो भी हम स्प्रिंग एमवीसी में स्ट्रूट 1.2 टैगलिब का उपयोग कर सकते हैं, इसका मतलब है कि आप अभी भी बीन का उपयोग कर सकते हैं: परिभाषित करें, बीन : लिखें ... तर्क: वर्तमान, तर्क: बराबर ... (स्ट्रूट 1.2 टैगलिब) जेएसपी में, केवल परिवर्तन स्ट्रेट्स 1.2 फॉर्म टैगलिब है (एचटीएमएल: टेक्स्ट, एचटीएमएल: त्रुटि एचटीएमएल: फॉर्म ...) को बदला जाना चाहिए स्प्रिंग फॉर्म टैगलिब (फॉर्म: पथ, फॉर्म: फॉर्म, फॉर्म: पथ, फॉर्म: एरर ...) ताकि हम स्प्रिंग एमवीसी जेएसपी फीचर

का उपयोग करने के लिए फॉर्म बैकऑब्जेक्ट द्वारा क्लास डेटा, रेफरेंसडाटा या प्रारंभिक कमांड डेटा को कमांड करने के लिए फार्म फ़ील्ड को बाध्य कर सकें।
संबंधित मुद्दे