7.1 सी: अगर, सी: प्रत्येक के लिए
सभी को जावा कोड के बजाय टैग का उपयोग करने वाला कोड पसंद आया, इसलिए उन्होंने इसका दायरा बढ़ाने का फैसला किया। लेकिन प्रोग्रामिंग वस्तुओं को बनाने और उनके गुणों को पढ़ने तक ही सीमित नहीं है। आपको वस्तुओं के तरीकों को कॉल करने, डेटाबेस और अन्य सेवाओं के साथ काम करने की आवश्यकता है। क्या करें?
आपको बस प्रत्येक जावा स्टेटमेंट को एक टैग के रूप में प्रस्तुत करना होगा। था if
, होगा <if>
, था for
, होगा, <for>
इत्यादि। ठीक है, ठीक है, मजाक कर रहा था, ऐसा नहीं था। खैर, ऐसा नहीं हो सकता कि लोग वास्तव में ऐसा करने का निर्णय लेते हैं। लेकिन नहीं, शायद!
प्रोग्रामर को कोड में कोई भी टैग जोड़ने की अनुमति है। सिद्धांत रूप में, चिंता करने की कोई बात नहीं है - JSP एक एक्स्टेंसिबल मानक है। लेकिन उन्होंने आगे जाकर JSP Standard Tag Library - JSTL को जारी किया। इसके साथ पेज इस तरह दिखता है:
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
<head>
<title> JSTL Example</title>
</head>
<body>
<c:set var = "salary" scope = "session" value = "${2000*5}"/>
<c:if test = "${ salary > 2000}">
<p>My salary is: <c:out value = "${salary}"/><p>
</c:if>
</body>
</html>
यह बहुत संभव है कि आप अपनी भविष्य की परियोजनाओं में इस तरह के कोड का सामना करेंगे, वहां मैं कुछ स्पष्टीकरण दूंगा।
7.2 जेएसटीएल कार्य करता है
जेएसटीएल कार्य 5 श्रेणियों में आते हैं:
- मुख्य टैग;
- स्वरूपण टैग;
- एसक्यूएल टैग;
- एक्सएमएल टैग;
- कॉलिंग फ़ंक्शन।
मैं उन सभी को सूचीबद्ध नहीं करूँगा, लेकिन मैं सबसे लोकप्रिय लोगों को सूचीबद्ध करूँगा। आइए मुख्य टैग से शुरू करें:
1 | <c:out> |
निर्दिष्ट अभिव्यक्ति को आउटपुट करता है - <% =%> के बराबर |
2 | <c:set> |
एक चर के लिए एक अभिव्यक्ति का परिणाम लिखता है |
3 | <c:remove> |
एक चर हटाता है |
4 | <c:catch> |
अपवादों को पकड़ता है |
5 | <c:if> |
अगर का एनालॉग |
6 | <c:choose> |
एनालॉग स्विच |
7 | <c:when> |
चुनें के साथ मिलकर प्रयोग किया जाता है |
8 | <c:otherwise> |
चुनें के साथ मिलकर प्रयोग किया जाता है |
9 | <c:import> |
आपको कोड में सामग्री शामिल करने की अनुमति देता है (आयात निर्देश के बराबर) |
10 | <c:forEach> |
प्रत्येक पाश के लिए |
ग्यारह | <c:param> |
आपको आयात के लिए विकल्प सेट करने की अनुमति देता है |
12 | <c:redirect> |
पुनर्निर्देशन |
13 | <c:url> |
पैरामीटर के साथ एक URL बनाता है |
मैं सिर्फ एक उदाहरण देता हूं और उसके साथ समाप्त करता हूं। सिद्धांत रूप में, कुछ कौशल के बाद ऐसे कोड को पढ़ना काफी संभव है। लेकिन मैं लिखने की सलाह नहीं देता।
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
<head>
<title> Each Tag Example&</title>
</head>
<body>
<c:forEach var = "i" begin = "1" end = "5">
Item <c:out value = "${i}"/><p>
</c:forEach>
</body>
</html>
इसके बारे में सोचें, हम जावा कोड को टैग के रूप में लिखते हैं, ताकि जेएसपी पार्सर इन टैग को जावा कोड में परिवर्तित कर सके। इस दुनिया में कुछ गलत हो गया है।
वैसे, आप अपनी खुद की टैग लाइब्रेरी लिख सकते हैं। मैंने एक बार भी एक प्रोजेक्ट में काम किया था जहाँ वे थे। बहुत बढ़िया अनुभव। जैसे ही लाइब्रेरी में कोई बदलाव किया जाता है, पूरा jsp तुरंत टूट जाता है।
आप क्या चाहते हैं? कंपाइलर ऐसे बदलावों को ट्रैक नहीं करता है। जेनरेट किए गए HTML पेजों को देखते समय उन्हें केवल दृश्यमान रूप से पाया जा सकता है। और अगर ये कुछ दुर्लभ परिदृश्य हैं जो गैर-तुच्छ स्थितियों में उत्पन्न होते हैं ... भगवान बैकएंड विकास और स्थिर टाइपिंग को आशीर्वाद दें!