2011-09-22 14 views
29

मैं एक छोटे से एक पृष्ठ वाली वेब एप्लिकेशन है जो AJAX में भारी-आधारित होगा की "प्रौद्योगिकियों चयन" चरण में हूँ, और जो एक जावा बैकएंड को रिपोर्ट करेंगे।वसंत MVC और यूआई अवयव

एक पिछले प्रश्न मैं कई हफ्तों पहले पोस्ट में, बड़े अनुभूत पर एसओ समुदाय दृढ़ता से मैं JSF में कुछ के साथ की तुलना में एक स्प्रिंग MVC-आधारित वेब अनुप्रयोग के साथ जा रहा से बेहतर हो सकता है कि। चूंकि स्प्रिंग अनुरोध-उन्मुख है, और जेएसएफ घटक उन्मुख है, यह केवल प्राप्त करने जा रहा है, जो कुछ असीमित अनुरोधों के लिए वसंत का उपयोग करने के लिए समझ में आता है।

अगर मैं थे JSF मार्ग से जा रहा है, तो फैसले के अपने अगले सेट किया जाए या नहीं इस तरह के PrimeFaces, IceFaces या MyFaces के रूप में देखें प्रौद्योगिकी के लिए तथाकथित UI घटक पुस्तकालयों का उपयोग करने के लिए, हो जाएगा।

तो, मैं सोच रहा हूं: क्या स्प्रिंग एमवीसी के पास मेरे पेज (ओं) के दृश्य घटक बनाने के लिए प्राइमफेस (या इसकी पसंद) के समान कुछ भी है? मैं अपनी नहीं घटक आधारित पता है, लेकिन मैं यह सब वसंत MVC के वेब मंच से परिचित नहीं हूँ और सोच रहा था कुछ वास्तविक मानकों (यदि हो तो) या ठेठ प्रौद्योगिकी क्या ढेर कि वसंत वेब डेवलपर्स अच्छा वेब पृष्ठों के निर्माण के लिए प्रयोग कर रहे हैं ।

और, यदि वसंत बस चलाने-ओ-द-मिल टेम्पलेट इंजन, होगा Freemarker पर्याप्त की तरह कुछ का उपयोग करता है?

मुझे लगता है कि यह एक "सर्वोत्तम प्रथाओं" एक उभरते स्प्रिंग वेब डेवलपर के लिए प्रकार सवाल है।

अग्रिम धन्यवाद!

उत्तर

19

आमतौर पर, UI घटक तथाकथित मूल्य कैसे वे एक स्टेटफुल ढांचे के साथ एकीकृत कर सर्वर साइड पर हुए उपयोगकर्ता इंटरैक्शन का ट्रैक रखने में निहित है।

जब से तुम एक अनुरोध उन्मुख ढांचे के लिए जाने का फैसला किया है, यह बजाय कुछ प्रसिद्ध क्लाइंट-साइड JavaScript लाइब्रेरी उपयोग करने के लिए और अधिक समझ बनाने जाएगा। लोकप्रिय विकल्पों में शामिल हैं:

  • Backbone.js – an MVC foundation for user interfaces
  • jQuery UI for some premade widgets (calendars, etc.)
  • आप एक अधिक जटिल मार्ग नीचे जाना चाहते हैं, लेकिन एक और अधिक डेस्कटॉप की तरह लग रहा है के साथ हैं, तो Sproutcore
  • अंत में, यदि आप जावास्क्रिप्ट बचना चाहते हैं , आप Google Web Toolkit का उपयोग कर सकते हैं, जो जावा को जावास्क्रिप्ट में संकलित करता है और वसंत के साथ अच्छा एकीकरण होना चाहिए।

व्यक्तिगत रूप से, यदि मुझे बहुत से मानक प्रीबिल्ट विजेट की आवश्यकता नहीं है, तो मुझे बैकबोन.जेएस + underscore.js + jQuery पसंद है। मुझे Google वेब टूलकिट पसंद नहीं है क्योंकि यह एक पिजिन जावास्क्रिप्ट लिखने जैसा लगता है, और उस समय मैं सीधे जावास्क्रिप्ट लिखना पसंद करता हूं।

+0

बढ़िया! धन्यवाद @ लुडो! – IAmYourFaja

+0

बैकबोन लिंक टूटा हुआ है – Snickers3192

6

हाँ, JSF घटक उन्मुख है और वसंत MVC अनुरोध उन्मुख है। मैं सुझाव है कि आप Thymeleaf खाका इंजन पर एक नज़र है, जो JSP इंजन के लिए एक पूर्ण प्रतिस्थापन .... Thymeleaf विशेषताएं हैं के लिए:

  • यह प्राकृतिक templating अनुमति देता है।
  • HTML5 समर्थन

Click here for more

0

साथ ही अलग लुडोविको फिशर ने उल्लेख चीजों से स्मृति कैशिंग में उपयोग करके

  • उच्चतर प्रदर्शन, अगर हम अब एक दिन तकनीक दुनिया में एक ही सवाल पर विचार आप हाल ही की दुनिया की सबसे अधिक शक्तियों में से एक का उपयोग कर सकते हैं: Angular। 2 नमूना परिदृश्य हैं।

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

      इस प्रकार इस तरह से आप templating, testability और साफ दृश्य कोड की तरह कोणीय featuresof एक साथ शांत हो सकता है।

  • 0

    यहाँ एक और दृष्टिकोण (नहीं JSF) वसंत MVC ZK यूआई घटकों के साथ काम करने के लिए जाने के लिए है - Rich Web Application with Spring MVC CRUD Demo

    उस लेख में, यह ZK UI घटक के साथ संवाद करने वसंत MVC नियंत्रक का इस्तेमाल किया। (जावा कोड में सभी)

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