दिलचस्प पोस्ट
मैं अपने विजुअल स्टूडियो 2015 परियोजनाओं में क्यूटी का उपयोग कैसे करूं? आइकन के साथ पॉपअपमेनू एक चुनिंदा बॉक्स से आइटम निकालना कार्यों के बजाय गुणों का उपयोग कब करना किसी ऑब्जेक्ट के गुण (स्ट्रिंग) में सी # Excel CSV – संख्या सेल प्रारूप JQuery में "परम serialization की पारंपरिक शैली" क्या है एंड्रॉइड कस्टम पॉपअप वाइंडो / डायलॉग मैं .NET के लिए MySQL कनेक्टर के लिए एक संदर्भ कैसे जोड़ूं? छवि पर पाठ की उपस्थिति का पता लगाने के लिए एल्गोरिथ्म एसक्यूएल के माध्यम से कई फ़ील्ड से अलग चुनें सीएसएस पाठ एल्िप्सिस जब चर चौड़ाई divs का उपयोग कर एपीआई की सुरक्षा: SSL और HTTP मूलभूत प्रमाणीकरण बनाम हस्ताक्षर क्या सी प्रीप्रोसेसर स्ट्रिप टिप्पणी या पहले मैक्रोज़ का विस्तार करता है? $ sce.trustAsResourceUrl () विश्व स्तर पर

जेएसपी के साथ फाइलों में निहित निर्देश शामिल हैं, जेएसपी में शामिल कार्रवाई और जेएसपी टैग फाइलों का उपयोग करने में क्या अंतर है?

ऐसा लगता है कि जेएसपी के साथ टेम्पलेटिंग के लिए दो तरीके हैं। इन बयानों में से एक के साथ फ़ाइलें शामिल करना

<%@ include file="foo.html" %> <jsp:include page="foo.html" /> 

या जेएसपी टैग फ़ाइलों का उपयोग करना

 // Save this as mytag.tag <%@ tag description="Description" pageEncoding="UTF-8"%> <html> <head> </head> <body> <jsp:doBody/> </body> </html> 

और दूसरे जेएसपी पेज में इसे कॉल करें

 <%@ taglib prefix="t" tagdir="/WEB-INF/tags" %> <t:mytag> <h1>Hello World</h1> </t:mytag> 

तो मैं किस विधि का उपयोग करना चाहिए? क्या अब इसे नापसंद माना जाता है या वे दोनों वैध हैं और विभिन्न उपयोग के मामलों को कवर करते हैं?

संपादित करें

क्या इस टैग फ़ाइल का इस्तेमाल किसी भी तरह का उपयोग करने के समान नहीं है?

 // Save this as product.tag <%@ tag description="Product templage" pageEncoding="UTF-8"%> <%@ tag import="com.myapp.Product" %> <%@ attribute name="product" required="true" type="com.myapp.Product"%> Product name: ${product.name} <br/> Quantity: ${product.quantity} <br/> 

और इसे दूसरे जेएसपी के साथ कॉल करें

 <%@ taglib prefix="t" tagdir="/WEB-INF/tags" %> <t:product> <c:forEach items="${cart.products}" var="product"> <t:product product="${product}"/> </c:forEach> </t:product> 

मुझे लगता है कि इसमें शामिल होने और इसके मानकों को पार करने के लिए बहुत ही समान होना चाहिए। तो क्या टैग फ़ाइलें उसी प्रकार हैं जैसे?

Solutions Collecting From Web of "जेएसपी के साथ फाइलों में निहित निर्देश शामिल हैं, जेएसपी में शामिल कार्रवाई और जेएसपी टैग फाइलों का उपयोग करने में क्या अंतर है?"

जेएसपी फ़ाइल में सामग्री का पुन: उपयोग करने के लिए कई तंत्र हैं

जेएसपी में सामग्री को शामिल करने के लिए निम्नलिखित 4 तंत्रों को सीधे पुन : उपयोग के रूप में वर्गीकृत किया जा सकता है:
( "हेड फर्स्ट सर्वलेट्स और जेएसपी" से उद्धृत पहले 3 तंत्रों के लिए)

1) निर्देश शामिल करें:

 <%@ include file="header.html" %> 

स्थैतिक : सामग्री को फ़ाइल विशेषता के मूल्य से अनुवाद समय पर वर्तमान पृष्ठ पर जोड़ता है। निर्देश मूल रूप से स्थैतिक लेआउट टेम्प्लेट के लिए लक्षित था, जैसे कि HTML शीर्षलेख

2) <jsp:include> मानक कार्रवाई:

 <jsp:include page="header.jsp" /> 

डायनेमिक : सामग्री के पृष्ठ विशेषता के मूल्य से अनुरोध समय पर वर्तमान पृष्ठ पर जोड़ता है। जेएसपी से आने वाली गतिशील सामग्री के लिए और अधिक करना चाहते थे।

3) <c:import> जेएसटीएल टैग:

 <c:import url=”http://www.example.com/foo/bar.html” /> 

डायनामिक : अनुरोध समय पर , यूआरएल विशेषता के मूल्य से वर्तमान पृष्ठ पर सामग्री जोड़ता है। यह <jsp:include> जैसी बहुत काम करता है, लेकिन यह अधिक शक्तिशाली और लचीला है: दूसरे दो के विपरीत, <c:import> url वेब के बाहर से हो सकता है कंटेनर !

4) उपदेश और कोड:

स्थैतिक : प्रिटल्स और कोडा केवल पृष्ठों की शुरुआत और समाप्त होने के लिए लागू किया जा सकता है
आप में <jsp-property-group> तत्व के भीतर क्रमशः <include-prelude> और <include-coda> तत्व जोड़कर जेएसपी पेजों के एक समूह के लिए पूर्ववर्ती (जिसे हेडर भी कहा जाता है) और कोडा (जिसे पाउंड भी कहते हैं) <include-prelude> कर सकते हैं वेब अनुप्रयोग web.xml परिनियोजन डिस्क्रिप्टर यहां और पढ़ें:
• इम्प्लासिट को कॉन्फ़िगर करना जेएसपी की शुरुआत और समाप्ति पर शामिल है
• अंतर्निहित अंतर्निहित परिभाषा शामिल हैं


टैग फ़ाइल सामग्री पुन: उपयोग की एक अप्रत्यक्ष पद्धति है, पुन: प्रयोज्य सामग्री को कैंब्रिज करने का तरीका। टैग फ़ाइल एक स्रोत फ़ाइल है जिसमें एक JSP कोड का एक टुकड़ा है जो कस्टम टैग के रूप में पुन: प्रयोज्य है।

इसमें शामिल और टैग फाइलों का उद्देश्य भिन्न है।

टैग फ़ाइल (जेएसपी 2.0 के साथ पेश की गई अवधारणा) कस्टम टैग बनाने के लिए एक विकल्प है। कस्टम टैग बनाने के लिए यह एक तेज़ और आसान तरीका है। कस्टम टैग , जिसे टैग एक्सटेंशन के रूप में भी जाना जाता है, JSP तत्व हैं जो अन्य जावा घटकों द्वारा प्रदान किए जाने वाले कस्टम लॉजिक और आउटपुट जेएसपी पेजों में डालने की अनुमति देते हैं। एक कस्टम टैग के माध्यम से प्रदान किए गए तर्क एक टैग हैंडलर के रूप में जाने वाला एक जावा ऑब्जेक्ट द्वारा लागू किया गया है।

कस्टम टैग द्वारा किए जा सकने वाले कार्यों के कुछ उदाहरणों में अंतर्निहित वस्तुओं पर कार्य करना शामिल है, प्रसंस्करण फ़ॉर्म, डेटाबेस तक पहुंच और ईमेल और निर्देशिका जैसी अन्य एंटरप्राइज़ सेवाओं, और प्रवाह नियंत्रण को कार्यान्वित करना शामिल है।


आपके संपादन के बारे में

शायद आपके उदाहरण में (आपके संपादन में ), सीधा शामिल और एक टैग फ़ाइल का उपयोग करने में कोई अंतर नहीं है। लेकिन कस्टम टैग के पास सुविधाओं का एक समृद्ध सेट है वे कर सकते हैं

  • फोन पेज से पारित विशेषताओं के माध्यम से अनुकूलित किया जाना चाहिए।

  • पास वाले कॉलिंग पृष्ठ को वापस पास करें

  • JSP पृष्ठों के लिए उपलब्ध सभी वस्तुओं तक पहुंचें

  • एक दूसरे के साथ संवाद। आप एक जावाबीयन घटक बना सकते हैं और आरम्भ कर सकते हैं, एक सार्वजनिक एएल चर बना सकते हैं जो उस सेम को एक टैग में संदर्भित करता है, और फिर दूसरे टैग में सेम का उपयोग करें।

  • एक दूसरे के भीतर रहें और निजी चर के माध्यम से संवाद करें।

इसके अलावा "प्रो जेएसपी 2" से यह पढ़ें: जेएसपी कस्टम टैग को समझना


उपयोगी पठन

  • जेएसपी में निदेशात्मक और कार्रवाई शामिल करने के बीच अंतर

  • Templating आसान बनाने के लिए JSP चालें

  • बहुत विस्तृत जानकारीपूर्ण और आसान स्पष्टीकरण के साथ coreservlet.com के ट्यूटोरियल को समझना है जिसमें <jsp:include> VS. <%@ include %> <jsp:include> VS. <%@ include %> तुलना तालिका शामिल है:
    जेएसपी पेजों में फाइल और एप्लेट्स शामिल करना

  • टैग पुस्तकालयों और टैग फ़ाइलों से संबंधित coreservlets.com से एक और अच्छा ट्यूटोरियल:
    कस्टम जेएसपी टैग लाइब्रेरी बनाना: मूल बातें

  • उदाहरण के साथ आधिकारिक जावा ईई 5 ट्यूटोरियल:
    टैग फ़ाइलों का उपयोग कर पुन: प्रयोज्य सामग्री को एनकोडेबल करना

  • आधिकारिक जावा ईई 5 ट्यूटोरियल से यह पृष्ठ आपको और अधिक समझना चाहिए:
    JSP पेजों में सामग्री का पुन: उपयोग

  • पुस्तक "प्रो जेएसपी 2" से यह अंश भी यह संकेत करता है कि आपको स्थैतिक का उपयोग करने के बजाय टैग फ़ाइल की आवश्यकता क्यों है :
    टैग फ़ाइलों के साथ सामग्री का पुन: उपयोग करना


निष्कर्ष

कंक्रीट कार्य के लिए सही उपकरण का उपयोग करें

कस्टम टैग बनाने के त्वरित और आसान तरीके के रूप में टैग फ़ाइलें उपयोग करें

जेएसपी ( यहां से बोली) में शामिल सामग्री के लिए:

  • शामिल निर्देश शामिल करें यदि फ़ाइल में शायद ही कभी परिवर्तन हो। यह सबसे तेज तंत्र है यदि आपका कंटेनर स्वचालित रूप से परिवर्तनों को नहीं पहचानता है, तो आप मुख्य पेज क्लास फ़ाइल को हटाकर परिवर्तनों को प्रभावी बनाने के लिए बाध्य कर सकते हैं।

  • केवल उस सामग्री के लिए कार्रवाई शामिल करें जो अक्सर बदल जाती है, और यदि पृष्ठ को शामिल करने तक मुख्य पृष्ठ का अनुरोध नहीं किया जाता है, तो इसका निर्धारण नहीं किया जा सकता है।

संभावित डुप्लिकेट प्रश्न

<@include> – डायरेक्टिव टैग जेएसपी कंपाइलर को निर्देशित करता है कि <@include> कोड बनाने से पहले जेएसपी में शामिल फ़ाइल की सामग्री को मर्ज करने के लिए निर्देश दिया गया है। यह आपके जेएसपी में आपके शामिल पेज से टेक्स्ट काटने और चिपकाने के बराबर है।

  • रनटाइम पर केवल एक सर्विसलेट निष्पादित होता है
  • मूल पृष्ठ में घोषित स्केललेट वेरिएबल को शामिल पृष्ठ में एक्सेस किया जा सकता है (याद रखें, वे एक ही पृष्ठ हैं)।
  • शामिल पेज को एक स्टैंडअलोन जेएसपी के रूप में संकलित करने की आवश्यकता नहीं है। यह एक कोड टुकड़ा या सादा पाठ हो सकता है शामिल पृष्ठ कभी भी एक स्टैंडअलोन के रूप में संकलित नहीं किया जाएगा शामिल पृष्ठ में कोई भी एक्सटेंशन हो सकता है, हालांकि। Jspf एक पारंपरिक रूप से उपयोग किया गया एक्सटेंशन बन गया है।
  • पुराने कंटेनरों पर एक दोष यह है कि पृष्ठ शामिल करने के लिए परिवर्तन तब तक प्रभावी नहीं हो सकते हैं जब तक कि माता पिता पृष्ठ अपडेट नहीं हो जाते। टोमक के हाल के संस्करण अद्यतनों के लिए शामिल पृष्ठों को देखेंगे और अगर वे अपडेट किए जाते हैं तो उनके माता-पिता के पुनः कंपाइल को मजबूर करते हैं
  • एक और दोष यह है कि चूंकि कोड जनरेटेड सर्विसलेट की सेवा पद्धति में सीधे रूपरेखा है, इसलिए विधि बहुत बड़ी हो सकती है। अगर यह 64 KB से अधिक है, तो आपका जेएसपी संकलन असफल होगा।

<jsp:include> – दूसरी तरफ जेएसपी एक्शन टैग इस पृष्ठ के निष्पादन को रोकने के लिए कंटेनर को निर्देश देता है, शामिल पृष्ठ को चलाएं, और उस पेज से आउटपुट को इस पेज से आउटपुट में मर्ज कर दें।

  • प्रत्येक शामिल पेज रन टाइम पर एक अलग सर्विसलेट के रूप में निष्पादित होता है।
  • पन्ने को समय-समय पर सशर्त रूप से शामिल किया जा सकता है। यह अक्सर टेम्पलेटिंग चौखटे के लिए उपयोगी होता है, जिनमें से पृष्ठ शामिल होते हैं। माता-पिता पृष्ठ यह निर्धारित कर सकता है कि कुछ रन-टाइम स्थिति के अनुसार शामिल करने के लिए कौन सा पृष्ठ, यदि कोई हो।
  • पटकथा चर के मूल्यों को स्पष्ट रूप से शामिल पृष्ठ को पारित करना होगा।
  • शामिल पृष्ठ अपने आप ही चलने में सक्षम होना चाहिए
  • जनरेटेड सर्वलेट क्लास में अधिकतम विधि आकार के कारण आप संकलन त्रुटियों में चलने की संभावना कम है।

आपकी ज़रूरतों के अनुसार, आप या तो <@include> या <jsp:include> उपयोग कर सकते <jsp:include>

<jsp:include /> अधिक <%@ include > मुख्य लाभ का <%@ include > यह है:

<jsp:include /> पैरामीटर पारित करने की अनुमति देता है

 <jsp:include page="inclusion.jsp"> <jsp:param name="menu" value="objectValue"/> </jsp:include> 

जो <%@include file="somefile.jsp" %>

सभी तीन टेम्पलेट विकल्प – <%@include> , <jsp:include> और <%@tag> मान्य हैं, और सभी तीन अलग-अलग उपयोग मामलों को कवर करते हैं।

<@include> , जेएसपी पार्सर <@include> फ़ाइल की सामग्री को संकलित करने से पहले जेएसपी में (सी #include समान) में #include । आप इस विकल्प को सरल, स्थिर सामग्री के साथ उपयोग कर सकते हैं: उदाहरण के लिए, यदि आप अपने वेब-ऐप के हर पृष्ठ में हेडर, पाद लेख, या नेविगेशन तत्वों को शामिल करना चाहते हैं शामिल सामग्री संकलित JSP का हिस्सा बन जाती है और रनटाइम पर कोई अतिरिक्त लागत नहीं है

<jsp:include> (और जेएसटीएल का <c:import> , जो समान और अधिक शक्तिशाली है) गतिशील सामग्री के लिए सबसे उपयुक्त हैं। इन्हें उपयोग करें जब आपको किसी अन्य यूआरएल, स्थानीय या रिमोट से सामग्री को शामिल करना होगा; जब आप जो संसाधन शामिल कर रहे हैं वह स्वयं गतिशील है; या जब सम्मिलित सामग्री वेरिएबल या बीन की परिभाषाओं का उपयोग करती है, जिसमें पृष्ठ के साथ संघर्ष होता है। <c:import> भी आप एक पाठ में शामिल पाठ को संग्रहित करने की अनुमति देता है, जिसे आप आगे हेरफेर या पुन: उपयोग कर सकते हैं इन दोनों को प्रेषण के लिए एक अतिरिक्त रनटाइम लागत उठाना पड़ता है: यह न्यूनतम है, लेकिन आपको इस बात से अवगत होने की आवश्यकता है कि गतिशील शामिल "मुक्त" नहीं है

जब आप पुन: प्रयोज्य उपयोगकर्ता इंटरफ़ेस घटकों को बनाना चाहते हैं तो टैग फ़ाइलों का उपयोग करें अगर आपके पास विजेट्स की एक सूची है, कहते हैं, और आप विजेट्स पर दोहराएं और प्रत्येक (एक तालिका में, या एक रूप में) गुणों का प्रदर्शन करना चाहते हैं, तो आप एक टैग बना सकते हैं। टैग <%@tag attribute> का उपयोग करके तर्क ले सकते हैं और ये तर्क अनिवार्य या वैकल्पिक हो सकते हैं – विधि पैरामीटर की तरह कुछ।

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

जावा रिजिट किया गया

  1. शामिल निर्देश द्वारा शामिल संसाधन जेस्प अनुवाद समय के दौरान लोड किया जाता है, जबकि अनुरोध कार्य के दौरान शामिल कार्रवाई में शामिल संसाधन शामिल होता है।
  2. शामिल संसाधन पर कोई भी बदलाव शामिल नहीं होगा, जब तक कि jsp फ़ाइल फिर से संकलित न हो। इसमें शामिल कार्रवाई के मामले में, शामिल संसाधन में कोई भी परिवर्तन अगले अनुरोध में दिखाई देगा।
  3. निर्देश शामिल करें स्थिर आयात है, जबकि कार्रवाई में गतिशील आयात शामिल है
  4. शामिल निर्देश शामिल करने के लिए संसाधन को निर्दिष्ट करने के लिए फ़ाइल विशेषता का उपयोग करता है, जबकि उसी उद्देश्य के लिए कार्रवाई उपयोग पृष्ठ विशेषता शामिल है।