2011-01-11 18 views
9

मैं सोच रहा था कि वास्तव में अपने वेब प्रवाह उत्पाद में OGNL से अधिक वसंत ईएल उपयोग करने के लिए स्प्रिंग चले गए क्या:ओजीएनएल पर स्प्रिंग ईएल का उपयोग करने के लाभ?

http://static.springsource.org/spring-webflow/docs/2.2.x/reference/htmlsingle/spring-webflow-reference.html#el-language-choices

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

तो, दो सवाल:

  1. वहाँ OGNL से अधिक वसंत ईएल का उपयोग कर, विशेष रूप से वसंत Webflow के संदर्भ में के लिए किसी भी प्रमुख लाभ कर रहे हैं?

  2. क्या आप स्प्रिंग ईएल का उपयोग करके ऑब्जेक्ट्स बना सकते हैं?

उत्तर

15

ठीक है, "क्यों" SpEL docs में कहा गया है:

जबकि वहाँ कई अन्य जावा अभिव्यक्ति उपलब्ध भाषाओं कर रहे हैं, OGNL, MVEL, और JBoss ईएल, कुछ नाम हैं, स्प्रिंग अभिव्यक्ति भाषा स्प्रिंग समुदाय को एक अच्छी तरह से समर्थित अभिव्यक्ति भाषा प्रदान करने के लिए बनाई गई थी जिसका उपयोग स्प्रिंग पोर्टफोलियो में सभी उत्पादों में किया जा सकता है।

जबकि ओजीएनएल के फायदे हैं, और इसके प्रशंसकों, इसकी कार्यक्षमता वसंत 3 के लिए आवश्यक चीज़ों के लिए बहुत सीमित है, और इसलिए एसपीईएल का जन्म हुआ था। और क्योंकि स्प्रेल स्प्रिंग के लिए आधार अभिव्यक्ति भाषा बन गया, वेबफ्लो ओजीएनएल के प्रतिस्थापन के रूप में उस स्थानांतरित हो गया।

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

इसके फायदे के रूप में, मैं कहूंगा कि प्राथमिक बात यह है कि ओजीएनएल अब स्थिर है, जबकि स्पेल अब स्प्रिंग का मुख्य हिस्सा है, और इसलिए लगातार सुधार और विस्तार किया जाएगा। स्पष्ट रूप से डाला गया है, ओजीएनएल मर चुका है (यह अब opensymphony.com द्वारा बनाए रखा गया है, जो शायद ही गतिशील, सक्रिय संगठन है)

+0

स्वीकृत। जिस तरह से मुझे पता चला कि आप सीधे स्प्रिंग ईएल में नए ऑपरेटर का उपयोग कर सकते हैं, तो हाँ, आप ऑब्जेक्ट्स बना सकते हैं! बहुत बढ़िया। – MetroidFan2002

+0

@ MetroidFan2002: एकीकृत ईएल और एसपीईएल के बीच समानता केवल सतही है। स्पेल बहुत अधिक अभिव्यक्तिपूर्ण और शक्तिशाली है, यह एक समान वाक्यविन्यास का उपयोग करने के लिए होता है। – skaffman

1

बहस नहीं करते कि स्पेल स्प्रिंग बनाए रखने वाले लोगों के लिए अधिक समझ नहीं लेता है, लेकिन ओजीएनएल पूरी तरह से नहीं है) मृत और opensymphony द्वारा बनाए रखा नहीं है।

https://github.com/jkuhnert/ognl

तो, वहाँ

। pfffttttttt

अद्यतन (5/23/11): ऐसा लगता है कि अपाचे अब से OGNL की मेजबानी करेगा की तरह। http://incubator.apache.org/projects/ognl.html

अद्यतन 2 (2014/04/03): http://commons.apache.org/proper/commons-ognl/ यह वहाँ थोड़ी देर के लिए किया गया है, लेकिन मैं तो बस आज फिर इस यादृच्छिक धागा देखा।

+0

उम ...उस पृष्ठ सिर्फ opensymphony.com के लिए लिंक – skaffman

+0

स्थिति पृष्ठ है [यहां] (http://incubator.apache.org/clutch.html) – Heathen

+0

SVN [यहां] (है https://svn.apache.org/repos/ asf/इनक्यूबेटर/ognl /)। अभी तक (2011-05-226) कोई रिलीज नहीं किया गया है। – Heathen

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