2012-08-22 15 views
9

में सुरक्षा के लिए जेएसपी टैगलिब्स के उपयोग के लिए वसंत पुस्तकालय जोड़ना मैं टेम्पलेट इंजन के रूप में फ्रीमार्कर के साथ वसंत का उपयोग कर रहा हूं। FreemarkerFreemarker

<#assign security=JspTaglibs["http://www.springframework.org/security/tags"] /> 
टेम्पलेट्स के लिए

जोड़कर, उदाहरण के लिए सुरक्षा के लिए JSP Taglibs, उपयोग करने के लिए अनुमति देता है, क्या मुझे उदाहरण

<@security.authorize ifNotGranted="ROLE_ADMIN"> 
     whatever 
    </@security.authorize> 

के लिए उपयोग करने के लिए लेकिन, स्प्रिंग/Freemarker taglibs नहीं मिल सकता है की अनुमति देता है, जब तक वे कक्षा में शामिल नहीं होते हैं, इसलिए मैंने

<dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-taglibs</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

मेरी परियोजना में मेरे pom.xml में जोड़ा।

लेकिन वैसे भी, टैग नहीं मिल सका! मुझे टैग के लिए WEB-INF/lib फ़ोल्डर में वसंत-सुरक्षा-taglibs.jar जोड़ना पड़ा।

क्या कोई जानता है कि जार को स्पष्ट रूप से lib फ़ोल्डर में क्यों जोड़ा जाना चाहिए ?? मेरे मामले में टॉमकैट द्वारा उन्हें क्यों नहीं मिला?

संपादित करें @ddekany

धन्यवाद। स्टैकट्रेस, निम्नलिखित है अगर वसंत-सुरक्षा-taglibs.jar वेब-INF/lib निर्देशिका में नकल नहीं है

No mapping defined for http://www.springframework.org/security/tags 
    The problematic instruction: ---------- ==> assignment: 
      security=JspTaglibs["http://www.springframework.org/security/tags"] 
      [on line 12, column 1 in home.ftl] in user-directive content.main 
      [on line 8, column 9 in home.ftl] in user-directive layout.global 
      [on line 2, column 1 in home.ftl] 
    ---------- Java backtrace for programmers: ----------  
    freemarker.template.TemplateModelException: 
      No mapping defined for http://www.springframework.org/security/tags at   
    freemarker.ext.jsp.TaglibFactory.get(TaglibFactory.java:180) at 
    ... 
+0

मुझे लगता है कि आपको अपने प्रश्न में सटीक त्रुटि संदेश शामिल करना चाहिए। साथ ही, मुझे नहीं लगता कि जेएसपी विनिर्देश बताता है कि यह वर्तमान में उपयोग कर * टैगलिब्स * ('tld'-s) का उपयोग करता है (?) वर्ग लोडर या ऐसा, लेकिन मैं उसमें गलत हो सकता हूं। – ddekany

उत्तर

0

आप शामिल किया JspSupportServlet कहा here और here

[संपादित करें] के रूप में अपनी पोस्ट को थोड़ा और सावधानी से पढ़ने के बाद, मैं आपको JSP specification से पढ़ा गया अनुभाग "JSP.7.3.2" (और आगे) की सलाह देता हूं।

+0

हां, मैंने प्रस्तावित के रूप में 'JspSupportServlet' जोड़ा है, लेकिन त्रुटि अभी भी वही है। [जेएसपी विनिर्देश] में खंड "जेएसपी.7.3.2" को देख रहे हैं (http://jsp.java.net/spec/jsp-2_1-fr-spec.pdf) मुझे लगता है कि आवश्यक हिस्सा यह है: "टीएलडी संसाधन पथ को वेब अनुप्रयोग की जड़ के सापेक्ष व्याख्या किया जाता है और उसे टीएलडी फाई ले को सीधे या एक जेएआर फाई को हल करना चाहिए जिसमें स्थान पर टीएलडी फाई लेना मेटा-आईएनएफ/टैगलिब.tld "है। क्या यह जवाब है कि टोमकैट मेटा-आईएनएफ/*। टीएलडी फाइल क्यों नहीं ढूंढ सकता? क्योंकि मैंने इसे एक मेवेन निर्भरता के माध्यम से शामिल किया था? – matthaeus

+0

मेटा-आईएनएफ/*। टीएलडी फाइलें जार से लोड की जाती हैं। जार फ़ाइलों को क्लासपाथ में होना जरूरी है जो वेब-आईएनएफ/lib है। यदि यह नहीं मिला है तो कोई जे 2 ईई कंटेनर टीएलडी लोड नहीं करेगा। – tom

+0

ठीक है, मैं समझता हूं, लेकिन वसंत टैगलिब लाइब्रेरी में मेवेन निर्भरता जोड़ने के लिए पर्याप्त क्यों नहीं है? जैसा कि [इस] में देखा जा सकता है (http://doanduyhai.wordpress.com/2012/02/26/spring-security-part-v-security-tags/) और [यह] (http: //static.springsource .org/वसंत-सुरक्षा/साइट/petclinic-tutorial.html) उदाहरण? – matthaeus

7

मामले में किसी और को इस में चलाता है ...

आप के रूप में यहां बताया गया है, वसंत समर्थन फ़ाइलों को जोड़ने की आवश्यकता http://static.springsource.org/spring-webflow/docs/2.2.x/reference/html/ch13s09.html (बस कुछ & पेस्ट कटा हुआ)।

और फिर कुछ निर्भरता जोड़ें:

<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-taglibs</artifactId> 
    <version>2.0.0</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework.webflow</groupId> 
    <artifactId>spring-faces</artifactId> 
    <version>2.3.1.RELEASE</version> 
</dependency> 

मान लिया जाये कि आप सब कुछ किसी और काम कर रहे है, अब आप अपने पृष्ठों के लिए taglib जोड़ने के लिए सक्षम होना चाहिए।

xmlns: उदाहरण के लिए सेकंड = "http://www.springframework.org/security/tags"

< सेकंड: को अधिकृत ifAllGranted = "USER_ROLE">
हैलो उपयोगकर्ता
</सेकंड: को अधिकृत >

*/च 'सेकंड' पोस्ट करने के लिए ख एक अंतरिक्ष जोड़ने के लिए किया था यह

+0

वसंत का अंतिम संस्करण जिसमें 'वसंत-चेहर' है 2.4.1 था। – Raedwald

2

उपयोग इस Maven निर्भरता:

<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-taglibs</artifactId> 
    <version>3.2.5.RELEASE</version> 
</dependency> 

org.springframework और org.springframework.security विभिन्न संस्करण संख्याओं के साथ विभिन्न ढांचे हैं।

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