JSTL (JSP मानक टैग लाइब्रेरी) ट्यूटोरियल: कोर और amp; कस्टम टैग उदाहरण

विषय - सूची:

Anonim

JSTL JSP की एक मानक टैग लाइब्रेरी है। यहां हम देखेंगे कि विभिन्न JSTL टैग का उपयोग कैसे JSP कोडिंग को आसान बना देगा।

इस ट्यूटोरियल में, आप सीखेंगे-

  • JSTL क्या है
  • JSTL कोर
  • JSP कस्टम टैग

JSTL क्या है?

JSTL का अर्थ है Java सर्वर पेज स्टैंडर्ड टैग लाइब्रेरी, और यह कस्टम JSP टैग लाइब्रेरीज़ का एक संग्रह है जो सामान्य वेब विकास कार्यक्षमता प्रदान करता है।

JSTL के लाभ

  1. मानक टैग : यह JSP पृष्ठों की पोर्टेबल कार्यक्षमता की एक समृद्ध परत प्रदान करता है। एक डेवलपर के लिए कोड को समझना आसान है।
  2. कोड नीट एंड क्लीन : जैसा कि डेवलपर को भ्रमित करता है, JSTL का उपयोग कोड को साफ और स्वच्छ बनाता है।
  3. स्वचालित JavabeansInterospection समर्थन : यह JSP स्क्रिप्ट पर JSTL का एक फायदा है। JSTL अभिव्यक्ति भाषा JavaBean कोड को बहुत आसानी से संभालती है। हमें वस्तुओं को नीचे गिराने की जरूरत नहीं है, जिसे स्कॉप्ड विशेषताओं के रूप में पुनः प्राप्त किया गया है। JSP स्क्रिप्ट कोड का उपयोग करना जटिल होगा, और JSTL ने उस उद्देश्य को सरल बना दिया है।
  4. मनुष्यों के लिए पढ़ने में आसान : JSTL XML पर आधारित है, जो HTML के समान है। इसलिए, डेवलपर्स को समझना आसान है।
  5. कंप्यूटर को समझने में आसान : ड्रीमविवर और फ्रंट पेज जैसे टूल अधिक से अधिक HTML कोड उत्पन्न कर रहे हैं। HTML टूल्स HTML कोड को फॉर्मेट करने का एक बड़ा काम करते हैं। HTML कोड को scriplet कोड के साथ मिलाया जाता है। जेएसटीएल को एक्सएमएल अनुरूप टैग के रूप में व्यक्त किया गया है, HTML पीढ़ी के लिए दस्तावेज़ के भीतर JSTL कोड को पार्स करना आसान है।

JSTL कोर

जेएसपी में मुख्य टैग सबसे अधिक बार उपयोग किए जाने वाले टैग हैं। वे समर्थन प्रदान करते हैं

  • यात्रा
  • सशर्त तर्क
  • अपवाद छोड़ दें
  • उर आगे
  • पुनर्निर्देशित, आदि।

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

वाक्य - विन्यास :

<%@ taglib prefix="c" uri=http://java.sun.com/jsp/jstl/core%>

यहाँ,

  • उपसर्ग का उपयोग सभी मुख्य टैग को परिभाषित करने के लिए किया जा सकता है और
  • uri टैगलिब की लाइब्रेरी है जहाँ से इसे आयात किया जाता है

आइए विस्तार से कुछ मुख्य टैग देखें,

1. बाहर:

  • अभिव्यक्ति का परिणाम आउट टैग में प्रदर्शित होता है
  • यह सीधे XML टैग्स से बच सकता है। इसलिए, उनका मूल्यांकन वास्तविक टैग के रूप में नहीं किया जाता है

वाक्य - विन्यास:

  • यहां मूल्य आउटपुट के लिए सूचना का प्रतिनिधित्व करता है, और यह अनिवार्य है
  • डिफ़ॉल्ट आउटपुट जानकारी में विफलता है, और यह अनिवार्य नहीं है
  • भागने XML - यह सच है अगर यह XML वर्णों से बच जाता है।

उदाहरण:

Coretag_jsp1.jsp

<% @ पृष्ठ भाषा = "जावा" सामग्रीpageEncoding = "ISO-8859-1"%><सिर><मेटा http-equiv = "सामग्री-प्रकार" सामग्री = "पाठ / html; चारसेट = ISO-8859-1"><शीर्षक> कोर टैग JSP1 <शरीर>

कोड की व्याख्या:

कोड लाइन 3: यह टैगलिब उपसर्ग सभी टैग के लिए आवश्यक है और उपसर्ग जोड़ा 'ग' है। इसलिए, इसका उपयोग सभी कोरटैग के लिए उपसर्ग के रूप में किया जा सकता है।

कोड लाइन 12: यहाँ हम उपसर्ग "c" के साथ coretag का उपयोग कर रहे हैं और यह आउट अभिव्यक्ति टैग में मान को प्रिंट करेगा। इसलिए, आउटपुट नाम होगा

जब आप उपरोक्त कोड निष्पादित करते हैं, तो आपको निम्न आउटपुट मिलते हैं:

आउटपुट:

  • हमें मूल्य "कोर" से एक नाम के रूप में मिल रहा है जो आउटपुट स्ट्रीम में प्रिंट होगा।

2. पकड़ना

  • यह किसी भी फेंकने योग्य अपवाद को पकड़ता है जो शरीर में होता है और आउटपुट के रूप में दिखाता है।
  • इसका उपयोग त्रुटियों को संभालने और उन्हें पकड़ने के लिए किया जाता है।

वाक्य - विन्यास:

यहाँ var वेरिएबल के नाम को दर्शाता है, जो थ्रोबल अपवाद को रखेगा।

उदाहरण:

<% @ पृष्ठ भाषा = "जावा" सामग्रीpageEncoding = "ISO-8859-1"%><% @ taglib उपसर्ग = "c" uri = "http://java.sun.com/jsp/jstl/core/%><सिर><मेटा http-equiv = "सामग्री-प्रकार" सामग्री = "पाठ / html; चारसेट = ISO-8859-1"><शीर्षक> कोर टैग JSP2 <शरीर> को पकड़ें<% int num = 10/0; %>अपवाद है: $ {guruException}

कोड की व्याख्या:

कोड लाइन 3: यह टैगलिब उपसर्ग सभी टैग के लिए आवश्यक है और उपसर्ग जोड़ा 'ग' है इसलिए इसे सभी कोरटैग के लिए उपसर्ग के रूप में इस्तेमाल किया जा सकता है

कोड लाइन 11-13: अपवाद को पकड़ने और अपवाद को प्रिंट करने के लिए कॉरटैग कैच का उपयोग किया जाता है। यहाँ अपवाद तब उठाया जाता है जब १०/० when और उस अपवाद का नाम "गुरु अपवाद" होता है।

कोड लाइन 14: हम "गुरु एक्सेप्शन" छाप रहे हैं।

जब आप कोड निष्पादित करते हैं, तो आपको निम्न आउटपुट मिलेगा:

आउटपुट:

  • हम अंकगणित अपवाद को शून्य के रूप में / के साथ प्राप्त कर रहे हैं, और इसे "गुरु एक्ससेप्शन" चर का उपयोग करके आउटपुट में प्रिंट किया गया है

3. आयात

  • हम एक अन्य फ़ाइल सामग्री को एक JSP पेज में आयात कर सकते हैं जैसे कि हमने JSP में कार्रवाई को शामिल किया था।
  • यहां हम URL भी शामिल कर सकते हैं और सामग्री उस पृष्ठ पर प्रदर्शित की जाएगी।

वाक्य - विन्यास:

यहाँ var एक वैरिएबल नाम है जो एक पहचानकर्ता है, जो फ़ाइल नाम / uri को रखेगा।

uri सापेक्ष फ़ाइल नाम या uriname है।

coretag_jsp31.jsp

<% @ पृष्ठ भाषा = "जावा" सामग्रीpageEncoding = "ISO-8859-1"%><% @ taglib उपसर्ग = "c" uri = "http://java.sun.com/jsp/jstl/core/%><सिर><मेटा http-equiv = "सामग्री-प्रकार" सामग्री = "पाठ / html; चारसेट = ISO-8859-1"><शीर्षक> कोर टैग JSP 31 <शरीर>

Coretag_jsp32.jsp

<% @ पृष्ठ भाषा = "जावा" सामग्रीpageEncoding = "ISO-8859-1"%><सिर><मेटा http-equiv = "सामग्री-प्रकार" सामग्री = "पाठ / html; चारसेट = ISO-8859-1"><शीर्षक> यहां शीर्षक डालें <शरीर> आयात करने के बाद फ़ाइल का प्रबंधन किया जाता है 

कोड की व्याख्या:

Coretag_jsp31.jsp

कोड लाइन 3: यह टैगलिब उपसर्ग सभी टैग के लिए आवश्यक है और उपसर्ग जोड़ा 'ग' है इसलिए इसे सभी कोरटैग के लिए उपसर्ग के रूप में इस्तेमाल किया जा सकता है

कोड लाइन 11-12: यहां हम आयात टैग का उपयोग करके इस फ़ाइल में coretag_jsp32.jsp फ़ाइल आयात कर रहे हैं

कोड लाइन 13: यहां हम फ़ाइल टैग का उपयोग करके coretag_jsp32.jsp को प्रिंट कर रहे हैं।

जब आप उपरोक्त कोड निष्पादित करते हैं, तो आपको निम्न आउटपुट मिलते हैं।

आउटपुट:

  • Coretag_jsp32 आउटपुट में मुद्रित होता है क्योंकि यह फ़ाइल coretag_jsp31.jsp में आयात की गई थी।

4. फोर

  • इसका उपयोग बयानों की श्रृंखला में तत्वों की संख्या को पुनरावृत्त करने के लिए किया जाता है।
  • यह जावा फोर्लो के समान है।

वाक्य - विन्यास:

  • यहाँ var वेरिएबल नेम को दर्शाता है जो काउंटर नेम को होल्ड करेगा
  • प्रारंभ काउंटर मूल्य का प्रतिनिधित्व करता है
  • एंड अपने अंतिम मूल्य का प्रतिनिधित्व करेगा

उदाहरण:

<% @ पृष्ठ भाषा = "जावा" सामग्रीpageEncoding = "ISO-8859-1"%><% @ taglib उपसर्ग = "c" uri = "http://java.sun.com/jsp/jstl/core/%><सिर><मेटा http-equiv = "सामग्री-प्रकार" सामग्री = "पाठ / html; चारसेट = ISO-8859-1"><शीर्षक> कोर टैग JSP4 <शरीर>

कोड की व्याख्या:

कोड लाइन 3: यह टैगलिब उपसर्ग सभी टैग के लिए आवश्यक है और उपसर्ग जोड़ा 'ग' है इसलिए इसे सभी कोरटैग के लिए उपसर्ग के रूप में इस्तेमाल किया जा सकता है

कोड लाइन 11-13: यहाँ हम "forEach" लूप का उपयोग करते हैं जहाँ चर का नाम "gurucount" होता है, जिसकी गिनती 5 के रूप में शुरू हो गई है और अंत में गिनती 10 के रूप में हो रही है। हम चर gurucount की छपाई कर रहे हैं जिनकी संख्या 5 से 10 तक है।

जब आप कोड निष्पादित करते हैं, तो आपको निम्न आउटपुट मिलते हैं

आउटपुट:

  • हमें जो आउटपुट मिल रहा है वह 5 से 10 तक शुरू हो रहा है।

5. यदि

  • इसका उपयोग परीक्षण स्थितियों के लिए किया जाता है।
  • यदि टैग का उपयोग किसी शर्त का परीक्षण करने के लिए किया जाता है कि क्या यह सच है या नहीं इस पर आधारित कोड के ब्लॉक को निष्पादित किया जाएगा।

वाक्य - विन्यास:

<% @ पृष्ठ भाषा = "जावा" सामग्रीpageEncoding = "ISO-8859-1"%><% @ taglib उपसर्ग = "c" uri = "http://java.sun.com/jsp/jstl/core/%><सिर><मेटा http-equiv = "सामग्री-प्रकार" सामग्री = "पाठ / html; चारसेट = ISO-8859-1"><शीर्षक> कोर टैग JSP5 <शरीर>

कोड की व्याख्या:

कोड लाइन 3: यह टैगलिब उपसर्ग सभी टैग के लिए आवश्यक है और उपसर्ग जोड़ा 'ग' है इसलिए इसे सभी कोरटैग के लिए उपसर्ग के रूप में इस्तेमाल किया जा सकता है

कोड लाइन 11: यहां हम 100 के रूप में गिनती के रूप में नामित चर सेट कर रहे हैं

कोड लाइन 12-14: यहां हम "अगर हालत" का उपयोग कर रहे हैं, जहां हम जांच रहे हैं कि क्या गिनती 100 के बराबर है। यह 100 के बराबर है तो हमें आउटपुट "गिनती 100 है।"

जब आप उपरोक्त कोड निष्पादित करते हैं, तो आपको निम्न आउटपुट मिलते हैं

आउटपुट:

  • जैसा कि "अगर" स्थिति सत्य है, तो हमें आउटपुट "द काउंट 100" के रूप में मिलता है।

6. पुनर्निर्देशित:

  • यह इस टैग के सापेक्ष URL प्रदान करके वर्तमान पृष्ठ को दूसरे URL पर पुनर्निर्देशित करने के लिए उपयोग किया जाता है।
  • यह संदर्भ सापेक्ष URL का समर्थन करता है

वाक्य - विन्यास:

यहाँ url सापेक्ष url है, जिसे इसे स्थानीय वेब अनुप्रयोग के पुनर्निर्देशित और संदर्भ नाम के रूप में जाना जाता है।

उदाहरण:

<% @ पृष्ठ भाषा = "जावा" सामग्रीpageEncoding = "ISO-8859-1"%><% @ taglib उपसर्ग = "c" uri = "http://java.sun.com/jsp/jstl/core/%><सिर><मेटा http-equiv = "सामग्री-प्रकार" सामग्री = "पाठ / html; चारसेट = ISO-8859-1"><शीर्षक> कोर टैग JSP6 <शरीर>

कोड की व्याख्या:

कोड लाइन 3: यह टैगलिब उपसर्ग सभी टैग के लिए आवश्यक है और उपसर्ग जोड़ा 'ग' है इसलिए इसे सभी कोरटैग के लिए उपसर्ग के रूप में इस्तेमाल किया जा सकता है

कोड लाइन 11: यहां हम "रीडायरेक्ट टैग" का उपयोग करते हैं, जहां हम urlname निर्दिष्ट कर रहे हैं, और जब हम उस पृष्ठ पर क्लिक करते हैं तो यह उस साइट पर रीडायरेक्ट करता है जिसे रीडायरेक्ट के लिए दिया गया है।

जब आप उपरोक्त कोड निष्पादित करते हैं, तो आपको निम्न आउटपुट मिलते हैं;

आउटपुट:

  • हमें आउटपुट गुरु 99.com url मिलता है जिसे coretag_jsp6.jsp द्वारा पुनर्निर्देशित किया गया है

JSP कस्टम टैग

  • यह एक उपयोगकर्ता-परिभाषित JSP भाषा तत्व है।
  • जब JSP को एक सर्वलेट में अनुवादित किया जाता है, तो कस्टम टैग को एक वर्ग में परिवर्तित कर दिया जाता है जो किसी वस्तु पर कार्रवाई करता है और उसे टैग हैंडलर कहा जाता है।
  • वे कार्य जब सर्वलेट निष्पादित होते हैं, वेब कंटेनर द्वारा लागू किए जाते हैं।
  • उपयोगकर्ता-निर्धारित कस्टम टैग बनाने के लिए, हमें टैग हैंडलर बनाने की आवश्यकता है जो कि SimpleTagSupport को बढ़ाएगा और doTag () विधि को ओवरराइड करना होगा।
  • हमें TLD बनाने की आवश्यकता है जहाँ हमें TLD में क्लास फ़ाइल को मैप करना होगा।

JSP में कस्टम टैग के लाभ:

  • पोर्टेबल - टैग लाइब्रेरी में वर्णित एक क्रिया किसी भी JSP कंटेनर में प्रयोग करने योग्य होनी चाहिए।
  • सरल - अपरिष्कृत उपयोगकर्ता इस तंत्र को समझने और उपयोग करने में सक्षम होना चाहिए। जेएसपी कार्यक्षमता के विक्रेताओं को इसे कार्य के रूप में उपलब्ध टाउज़र बनाने में आसान होना चाहिए।
  • अभिव्यंजक - तंत्र को कई प्रकार की क्रियाओं का समर्थन करना चाहिए, जिसमें शामिल क्रियाएं, एक्शन बॉडी के अंदर स्क्रिप्टिंग तत्व, स्क्रिप्टिंग चर का निर्माण, उपयोग और उपयोग करना शामिल हैं।
  • विभिन्न स्क्रिप्टिंग भाषाओं से उपयोग करने योग्य - यद्यपि JSP विनिर्देशन केवल जावा प्रोग्रामिंग भाषा में स्क्रिप्ट के लिए शब्दार्थ को परिभाषित करता है, हम अन्य स्क्रिप्टिंग भाषाओं की संभावना को छोड़ना चाहते हैं।
  • मौजूदा अवधारणाओं और मशीनरी पर निर्मित - हम कहीं और भी व्हाट्सएप को फिर से स्थापित नहीं करना चाहते हैं। इसके अलावा, हम भविष्य के संघर्षों से बचना चाहते हैं जब भी हम उन्हें रद्द कर सकते हैं

वाक्य - विन्यास:

गौर करें कि हम टेस्टगुरु टैग बना रहे हैं और हम क्लासटैगटेस्टटैग का उपयोग कर सकते हैं, जो doTag () विधि को ओवरराइड करेगा।

Class testTag extends SimpleTagSupport{ public void doTag()}

इसके अलावा, हमें टीएलडी (टैग लाइब्रेरी डिस्क्रिप्टर) में इस टेस्टटैग क्लास को मैप करना होगा क्योंकि जेएसपी कंटेनर स्वचालित रूप से क्लास फाइल और यूआरआई के बीच एक मैपिंग बनाएगा जिसका उल्लेख टीएलडी फाइल में किया गया है।

JSP टैग इंटरफ़ेस

  • इस वर्ग को SimpleTagSupport वर्ग का विस्तार करना होगा।
  • इस वर्ग को doTag () विधि को ओवरराइड करना होगा जो कि SimpleTagSupport वर्ग का हिस्सा है (ओवरराइडिंग एक विधि है जो मूल वर्ग से विरासत में मिली है)।
  • यह इंटरफ़ेस JSPTag इंटरफ़ेस का एक उप इंटरफ़ेस है।
  • यह टैग के आरंभ और अंत में प्रदर्शन करने के तरीके प्रदान करता है।
  • साथ ही, हमें इस क्लास को TLD यानी टैग लाइब्रेरी डिस्क्रिप्टर में मैप करना होगा

हम नीचे दिए गए उदाहरण में विचार कर रहे हैं

टैग इंटरफ़ेस की विधि

  • doTag () एक विधि है जिसे हमें ओवरराइड करने की आवश्यकता होती है जिसमें टैग के लिए सामग्री होगी।
  • यह GetJSPContext () का उपयोग करके वर्तमान JSP संदर्भ लेता है

उदाहरण:

Customtag_jsp1.jsp

<% @ पृष्ठ भाषा = "जावा" सामग्रीpageEncoding = "ISO-8859-1"%><% @ taglib उपसर्ग = "पूर्व" uri = "WEB-INF / custom.tld"%><सिर><मेटा http-equiv = "सामग्री-प्रकार" सामग्री = "पाठ / html; चारसेट = ISO-8859-1"><शीर्षक> कस्टम टैग <शरीर>

कस्टम

<टैगलिब> 1.0  2.0 <शॉर्ट-नेम> टेस्ट TLD <टैग> गुरुटैग <टैग-क्लास> demotest.guruTag <शरीर-सामग्री> रिक्त 

गुरुटाग.जावा (टैगहैंडलर)

पैकेज डिमोटेस्ट;आयात javax.servlet.jsp.tagext। *;आयात javax.servlet.jsp। *;आयात java.io. *;पब्लिक क्लास गुरुटेग का विस्तारसार्वजनिक शून्य doTag () JspException, IOException फेंकता है{{JspWriter out = getJspContext ()। GetOut ();out.println ("गुरु टैग");}}

कोड की व्याख्या:

गुरुटाग.जावा (टैगहैंडलर)

कोड लाइन 6: गुरुटैग क्लास SimpleTagSupport क्लास का विस्तार कर रही है, जो javax.servlet.pp jar में मौजूद है

कोड लाइन 7: यहां हम doTag () विधि को ओवरराइड कर रहे हैं जो JspException और IOException को फेंकता है।

कोड लाइन 9-10: इस विधि में, कोड को कस्टम टैग में एम्बेड किया जाएगा जिसे कहा जाएगा। हम JspWriter का एक ऑब्जेक्ट ले रहे हैं, और यह "गुरु टैग" प्रिंट करेगा।

कस्टम

कोड लाइन 6: यहां कस्टम टैग का नाम "गुरुटैग" है।

कोड लाइन 7: टैग क्लास है टैगहैंडलर्केलस, यानी, गुरुटाग.जावा। यह हैंडलर फ़ाइल का पूर्ण पथ लेता है जिसमें फ़ाइल के स्थान का निर्देशिका पथ शामिल होता है।

Customtag_jsp1.jsp

कोड लाइन 3 : यह टैगलिब उपसर्ग सभी टैग के लिए आवश्यक है और उपसर्ग जोड़ा 'पूर्व' है इसलिए इसे सभी कोरटैग के लिए उपसर्ग के रूप में इस्तेमाल किया जा सकता है और uri custom.tld है जो टैग हैंडलर को मैप करता है।

कोड लाइन 11: यहां हम कस्टम टैग "गुरुटैग" को परिभाषित कर रहे हैं, जो हैंडलर क्लास doTag () विधि को कॉल करेगा और इसके भीतर कोड निष्पादित किया जाएगा।

जब आप उपरोक्त कोड निष्पादित करते हैं, तो आपको निम्न आउटपुट मिलते हैं

आउटपुट:

  • हम गुरुटैग.जवा यानी टैगहैंडलर से "गुरुटैग" के रूप में आउटपुट प्राप्त करते हैं, जो doTag () विधि को ओवरराइड करता है और जो "गुरु टैग" को आउटपुट के रूप में प्रिंट करता है।

सारांश:

  • इस खंड में, हमने JSP मानक टैग लाइब्रेरी के बारे में सीखा जिसमें हमने मुख्य टैग और कस्टम टैग किए।
  • कोर टैग में शामिल हैं, यदि, पुनर्निर्देशन, आयात, कैच टैग जो JSP में मूल उद्देश्यों के लिए उपयोग किए गए टैग थे।
  • इसके अलावा, हमने कस्टम टैग किए जिसमें हम टैग को परिभाषित कर सकते हैं और इसका उपयोग JSP में कर सकते हैं