2011-01-27 20 views
115

के बीच अंतर मैं अभिव्यक्ति भाषा (ईएल) के बीच विस्तृत अंतर जानना चाहता हूं। जेएसपी ईएल, जेएसएफ ईएल और एकीकृत ईएल है।जेएसपी ईएल, जेएसएफ ईएल और एकीकृत ईएल

मैं ईएल के पीछे इतिहास और जावा ईई अनुप्रयोगों में नवीनतम ईएल का उपयोग करना चाहता हूं। क्या यह नवीनतम संस्करणों में सभी दृश्य प्रौद्योगिकियों के लिए ईएल आम है?

+7

क्यों "के रूप में एक असली सवाल नहीं बंद किया गया" "विशेष अभिव्यक्ति भाषा JSTL में शुरू के पीछे एक प्रेरणा शक्ति होने के लिए नाथन अब्रामसन के लिए उल्लेख"? - मुझे एक बिल्कुल वैध, और सहायक सवाल लगता है। –

+0

@ मार्कवा: उस समय यह प्रश्न बंद कर दिया गया था, "वास्तविक प्रश्न" को सख्ती से परिभाषित किया गया था, और यह प्रश्न योग्य नहीं था। आज, इसे "बहुत व्यापक" या "मुख्य रूप से राय आधारित" के रूप में बंद किया जाएगा (जिस प्रश्न पर आप ध्यान केंद्रित कर रहे हैं उसके आधार पर)। किसी भी तरह से, इसे फिर से खोलना एक गैर स्टार्टर है। –

उत्तर

207
  • जून 2002: जेएसटीएल 1.0 पहली बार ईएल के साथ पेश किया गया था। यह ${} चीजें थीं जो केवल जेएसटीएल टैग में काम करती हैं। इसे जावबीन get विधियों को कॉल करने के लिए डिज़ाइन किया गया है।

  • नवंबर 2003: JSP 2.0 पेश किया गया था और ईएल javax.servlet.jsp.el पैकेज में JSP 2.0 करने के लिए JSTL 1.0 से ले जाया गया था और यह मानक ईएल J2EE 1.4 मानक के हिस्से के रूप बन गया। जेएसटीएल 1.1 ईएल के बिना भेज दिया गया था। अब ${} जेएसपी टेम्पलेट टेक्स्ट में जेएसटीएल टैग के बाहर भी काम करता है।

  • मार्च 2004: javax.faces.el पैकेज में स्थगित ईएल के साथ जेएसएफ 1.0 पेश किया गया था। यह उन #{} चीजें थीं जो केवल जेएसएफ टैग के अंदर काम करती हैं। मानक जेएसपी ईएल ${} के साथ अंतर यह है कि यह न केवल get करता है, बल्कि set भी कर सकता है। प्रबंधित बीन ऑटो-निर्माण और इनपुट घटकों के मानों को सेट करना अनिवार्य था। मानक ईएल ${} जेएसएफ आउटपुट टैग में भी काम करता है, लेकिन अगर वे अभी तक दायरे में मौजूद नहीं हैं तो वे ऑटो-निर्माण नहीं करेंगे और वे इनपुट मान सेट नहीं करेंगे।

  • मई 2005: जबकि अभी भी के लिए नई JSP 2.1 जो मई 2006 को जारी किया जाना चाहिए, आस्थगित ईएल #{} तैयारी कर JSF से निकाला और javax.el पैकेज में मानक ईएल ${} के साथ संयुक्त किया गया था। उस बिंदु पर, यह एकीकृत ईएल बन गया जो जेएसएफ 1.2 के साथ पेश किया गया था और बाद में जेएसपी 2.1 और जावा ईई 5 मानक का हिस्सा बन गया। #{} अब भी जेएसपी टैग्स में get मानों में उपयोग किया जा सकता है, लेकिन set मानों पर नहीं। ${} अब जेएसपी में प्रबंधित बीन्स को स्वतः बना सकता है, लेकिन set मान नहीं।

  • नवंबर 2006: फेसलेट को जेएसपी के उत्तराधिकारी के रूप में पेश किया गया था। इसने के उपयोग के लिए जेएसएफ टैग के बाहर टेम्पलेट टेक्स्ट में <h:outputText> के विकल्प के बिना किसी भी विशेषता के उपयोग की अनुमति दी। यह ${} को #{} के रूप में भी मानता है, इसलिए वे दोनों फेसलेट में समान व्यवहार करते हैं।

  • दिसंबर 200 9: ईएलएस जेएसपी विनिर्देशन से निकाला गया था और एक स्टैंडअलोन विनिर्देश बन गया जो जेएसपी से स्वतंत्र रूप से बनाए रखा जाएगा, पहला संस्करण ईएल 2.2 (जेएसआर -245) है, जो जेएसपी 2.2 के अनुरूप है। मुख्य नई सुविधा केवल #{} सिंटैक्स के अंदर जावबीन गेटर्स/सेटर्स को कॉल करने के बजाय पैरामीटरयुक्त विधियों को कॉल कर रही है, उदा। #{bean.method(argument)}। इसके अलावा, फेसलेट जावा ईई 6 मानक का हिस्सा बन गया।

  • जून 2013: ईएल 3.0 पेश किया गया था जो एक स्टैंडअलोन ईएल प्रोसेसर के साथ आता है, जो एक सादे जावा एसई अनुप्रयोग में उपयोग की इजाजत देता है। अन्य मुख्य नई विशेषताएं नई स्ट्रिंग कॉन्सटेनेशन ऑपरेटर += हैं, संग्रह वस्तुओं के लिए नए ऑपरेशन, स्ट्रीम और लैम्ब्डा एक्सप्रेशन -> (जावा 6/7 पर भी!) और ईएल स्कोप में स्थिरांक आयात करना।

14

बलुस के उत्तर में जोड़ना ...

ईएल मूल रूप से 2001 में कला प्रौद्योगिकी समूह के नाथन अब्रामसन द्वारा कल्पना और कार्यान्वित किया गया था। उस समय कार्यान्वयन को सरलतम संभावित अभिव्यक्ति भाषा (एसपीईएल) के रूप में जाना जाता था। कार्यान्वयन बाद में जेएसटीएल 1.0 में शामिल किया गया था। नाथन JSR-052 Expert Group का हिस्सा था, और अभिव्यक्ति भाषा के पीछे JSTL specification में ड्राइविंग बल के रूप में श्रेय दिया गया था।

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