2010-03-06 12 views
5

द्वारा प्रदान की गई .tld के लिए जेएसपी पृष्ठ में टैगलिब निर्देश Iआधारित एप्लिकेशन विकसित कर रहा हूं। मैं स्ट्रूट्स के लिए नया हूँ। मैं JSP पृष्ठ में Struts द्वारा प्रदान की गई टैगलिब निर्देशिका में निर्दिष्ट html टैग का उपयोग करना चाहता हूं।स्ट्रूट्स - स्ट्रिप्स

लेकिन यह नहीं पता कि इसका उपयोग कैसे करें। मुझे टैगलिब निर्देश का उपयोग करने का तरीका पता है, लेकिन मुझे स्रोतों से पता चला कि संस्करण 1.2.8 के बाद .ld फ़ाइल को .jar फ़ाइल में एम्बेड किया गया है। मैं स्ट्रूट संस्करण 2.1.8 का उपयोग कर रहा हूँ।

मुझे नहीं पता कि .jar फ़ाइल struts-html.tld फ़ाइल स्थित है।

उत्तर

6

मैं Struts 1.3.10 उपयोग कर रहा हूँ इस उदाहरण के लिए:

  1. यहाँ नवीनतम struts लाइब्रेरी डाउनलोड करें (http://struts.apache.org/download.cgi#struts1310)। याद रखें, पूर्ण वितरण यह है कि आपको डाउनलोड करना होगा क्योंकि इसमें स्ट्रैट्स टीएलडी के साथ एक युद्ध फ़ाइल है।
  2. अपने वेब एप्लिकेशन पर, अपने /WEB-INF/lib फ़ोल्डर में डाउनलोड की गई आर्काइव फ़ाइल में सभी lib को कॉपी करें।
  3. JSTL पुस्तकालयों के लिए (जो struts के साथ अच्छी तरह से काम करता है) यहाँ जाना (http://java.sun.com/products/jsp/jstl/)
  4. बार जब आप अपने Struts टीएलडी और JSTL टीएलडी, उन्हें /WEB-INF/tld/ फ़ोल्डर में डाल दिया है (यह /वेब-INF में स्थित होना चाहिए/फ़ोल्डर)।
  5. web.xml पर (<web-app> तत्व के तहत) निम्नलिखित सामान जोड़ने

    <jsp-config> 
        <taglib> 
         <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> 
         <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location> 
        </taglib> 
        <taglib> 
         <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> 
         <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location> 
        </taglib> 
        <taglib> 
         <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri> 
         <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location> 
        </taglib> 
        <taglib> 
         <taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri> 
         <taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location> 
        </taglib> 
        <taglib> 
         <taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri> 
         <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location> 
        </taglib> 
        <taglib> 
         <taglib-uri>/WEB-INF/sslext.tld</taglib-uri> 
         <taglib-location>/WEB-INF/tld/sslext.tld</taglib-location> 
        </taglib> 
        <taglib> 
         <taglib-uri>/WEB-INF/struts-layout.tld</taglib-uri> 
         <taglib-location>/WEB-INF/tld/struts-layout.tld</taglib-location> 
        </taglib> 
    
        <!-- Sun's JSTL --> 
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/fn</taglib-uri> 
         <taglib-location>/WEB-INF/tld/fn.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri> 
         <taglib-location>/WEB-INF/tld/fmt.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/fmt-1-0</taglib-uri> 
         <taglib-location>/WEB-INF/tld/fmt-1_0.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri> 
         <taglib-location>/WEB-INF/tld/fmt-rt.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/fmt-1-0-rt</taglib-uri> 
         <taglib-location>/WEB-INF/tld/fmt-1_0-rt.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/core</taglib-uri> 
         <taglib-location>/WEB-INF/tld/c.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/core-1-0</taglib-uri> 
         <taglib-location>/WEB-INF/tld/c-1_0.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri> 
         <taglib-location>/WEB-INF/tld/c-rt.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/core-1-0-rt</taglib-uri> 
         <taglib-location>/WEB-INF/tld/c-1_0-rt.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/sql</taglib-uri> 
         <taglib-location>/WEB-INF/tld/sql.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/sql-1-0</taglib-uri> 
         <taglib-location>/WEB-INF/tld/sql-1_0.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri> 
         <taglib-location>/WEB-INF/tld/sql-rt.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/sql-1-0-rt</taglib-uri> 
         <taglib-location>/WEB-INF/tld/sql-1_0-rt.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/x</taglib-uri> 
         <taglib-location>/WEB-INF/tld/x.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/x-1-0</taglib-uri> 
         <taglib-location>/WEB-INF/tld/x-1_0.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri> 
         <taglib-location>/WEB-INF/tld/x-rt.tld</taglib-location> 
        </taglib> 
    
        <taglib> 
         <taglib-uri>http://java.sun.com/jstl/x-1-0-rt</taglib-uri> 
         <taglib-location>/WEB-INF/tld/x-1_0-rt.tld</taglib-location> 
        </taglib> 
    </jsp-config> 
    

यह बताता है कि एक बार आप JSP से अपने टीएलडी कहते हैं, अपने webapp मिलान <taglib-uri> तो देखने के लिए दिखेगा <taglib-location> पर इसके स्थान के लिए और कॉल करने के लिए प्रासंगिक कक्षा खोजें।

अपने JSP पर, अब आप यह कर सकते हैं:

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> 
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> 
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> 
<%@ taglib uri="/WEB-INF/struts-layout.tld" prefix="layout"%> 
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> 
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> 
<%@ taglib uri="http://java.sun.com/jstl/fn" prefix="fn" %> 

आशा इस मदद करता है।

+6

मैं Struts करना नहीं है, इसलिए मैं इसके बारे में कुछ भी कहना नहीं होगा, लेकिन JSTL के लिए वहाँ ** बिल्कुल कोई जरूरत ** JAR फ़ाइल और अव्यवस्था '/ वेब INF' निकालने के लिए ढीली टीएलडी फाइलों के साथ। '/ WEB-INF/lib' में जार फ़ाइल को छोड़कर और जेएसटी दस्तावेज के अनुसार जेएसपी दस्तावेज के अनुसार जेएसपी के शीर्ष पर टैगलिब्स घोषित करना पर्याप्त है। यह अन्य सभी जेएसपी टैगलिब्स के लिए सामान्य अभ्यास भी होना चाहिए: 1) क्लासपाथ (यानी '/ WEB-INF/lib') में जेएआर फ़ाइल (ओं) को छोड़ दें, 2) जेएसपी में' टैगलिब 'घोषित करें। बस इतना ही। इसी तरह का उत्तर: http://stackoverflow.com/questions/2323645 – BalusC

+0

धन्यवाद ... मुझे यह नहीं पता था .... गीज़, मैं आपकी विधि का प्रयास करूंगा ... –

+0

@ बाल्लूसी ... तो एमवीसी फ्रेमवर्क क्या है क्या आप _ का उपयोग करते हैं? –

1

बलुससी सही है: आपको बस JAR फ़ाइलों को /WEB-INF/lib में और प्रत्येक जेएसपी में उचित taglib की आवश्यकता है। एक चीज जिसने मुझे शुरू में शुरू किया वह संवेदनशील जेएसपी वाक्यविन्यास था; कुछ तत्वों के बीच की जगह महत्वपूर्ण हैं। प्रति धारियों documentation, धारियों टीएलडी के लिए प्रत्येक taglib तरह दिखना चाहिए:

<%@ taglib prefix="stripes" uri="http://stripes.sourceforge.net/stripes.tld" %> 
1

इस सवाल का एक है यहां तक ​​कि अगर (मेरे लिए, समझ से बाहर) स्वीकार किए जाते हैं जवाब है, मैं अपने आप को उस पर एक जाना है के लिए बाध्य महसूस करते हैं। असली जवाब बलुस की टिप्पणी में निहित है और .tldWEB-INF में बिछाने वाली फ़ाइलों को वास्तव में खराब सलाह है। स्ट्रेट्स 2 के सटीक संस्करण का उपयोग करके मेरा इरादा विस्तारित है ओपी (v2.1.8) के बारे में पूछ रहा था, जिसे मैंने Apache's historical archive से डाउनलोड किया था।

  1. मैं नहीं जानता, जिसमें .jar फ़ाइल struts-html.tld फ़ाइल स्थित है।

struts2 में कोई struts-html.tld नहीं है - इसके बजाय वहाँ निम्नलिखित हैं:

  • struts-tags.tld, जो struts2-core-2.1.8.jar की META-INF निर्देशिका में रहता है और सभी मानक Struts टैग होता है, लोगों की तरह आप Struts1 में struts-html.tld में खोजने की उम्मीद करेंगे।
  • tiles-jsp.tld, जो META-INFtiles-jsp-2.0.6.jar की निर्देशिका में रहता है और Struts1 में struts-tiles.tld के अनुरूप है।
  • कुछ और टीएलडी, उदा। साइटमैश के लिए जो सीधे प्रश्न से संबंधित नहीं हैं।

  1. मैं एक JSP पेज में html टैग, Struts द्वारा प्रदान की एक taglib निर्देशिका में निर्दिष्ट, उपयोग करना चाहते हैं। लेकिन यह नहीं पता कि इसका उपयोग कैसे करें। मुझे टैगलिब निर्देश का उपयोग करने का तरीका पता है, लेकिन मुझे स्रोतों से पता चला कि संस्करण 1.2.8 के बाद .ld फ़ाइल को .jar फ़ाइल में एम्बेड किया गया है।

यह सही है। जिस तरह से यह आम तौर पर काम करता है निम्नलिखित:

  • जब सर्वलेट कंटेनर शुरू होता है, यह WEB-INF/lib निर्देशिका और भार यह वहाँ पाता है किसी भी .jar फ़ाइलों के माध्यम से लग रहा है - यह वह जगह है जहाँ आप struts2 पुस्तकालय डालना होगा।
  • इन .jar फ़ाइलों के अंदर, किसी भी टीएलडी को META-INF निर्देशिका में रहने की उम्मीद है। जाहिर है और जैसा ऊपर बताया गया है, यह पहले से ही struts2-core-2.1.8.jar का मामला है, इसलिए ऐसा करने की आवश्यकता नहीं है।
  • जब सर्वलेट कंटेनर टीएलडी लोड करता है, तो यह रूट तत्व <taglib> के अंदर <uri> तत्व ढूंढता है और उस टीएलडी और उसके यूआरआई के बीच मैपिंग स्टोर करता है। इसके अनुरूप, इस यूआरआई का उपयोग आपकी .jsp फ़ाइलों में टीएलडी के संदर्भ में किया जाता है।

struts2-core-2.1.8.jar के मामले में, यूआरआई /struts-tags है और इस तरह आप एक .jsp फ़ाइल इस तरह में यह संदर्भ के लिए (जाहिर है आप अपनी पसंद के prefix विशेषता बदल सकते हैं) की आवश्यकता है ...

<%@ taglib uri="/struts-tags" prefix="s" %> 

... और बाद में इसे उपयोग करने के लिए रखा, उदाहरण के लिए इस:

<s:form action="HelloWorld"> 
    (...) 
</s:form> 
+1

ठीक है, इसे दूसरी बार पढ़ना यह एस 1 संबंधित नहीं है। एक पूर्ण जवाब के लिए एक प्लस। –

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