2012-02-01 11 views
15

मैं क्लाइंट साइड फॉर्म सत्यापन के लिए जेएसएफ के साथ jQuery सत्यापन प्लगइन का उपयोग करना चाहता हूं। मुझे संसाधनों को आयात करने में बुनियादी कठिनाई मिल रही है।एच द्वारा जावास्क्रिप्ट फ़ाइलों को कैसे शामिल करें: outputScript?

मेरी JSF पेज में मैं

<h:outputScript library="js" name="jquery-1.6.2.js"></h:outputScript> 
<h:outputScript library="js" name="jquery.validate.js"></h:outputScript> 
<h:outputScript library="js" name="jquery.maskedinput.js"></h:outputScript> 
<h:outputScript library="js" name="myapp.validate.js"></h:outputScript> 

है जब मैं Firefox में स्क्रिप्ट टैब पर क्लिक करें, मैं किसी भी स्क्रिप्ट फ़ाइलें ड्रॉपडाउन में नहीं देख सकता। एक संदेश दिखाया गया है:

यदि टैग में "प्रकार" विशेषता है, तो इसे "टेक्स्ट/जावास्क्रिप्ट" या "एप्लिकेशन/जावास्क्रिप्ट" के बराबर होना चाहिए। इसके अलावा स्क्रिप्ट को पारदर्शी (वाक्य रचनात्मक रूप से सही) होना चाहिए।

माउस होवर, छुपाएं, शो इत्यादि जैसे मेरे jquery प्रभाव को काम नहीं करते हैं। मैंने सामान्य स्क्रिप्ट टैग

<script type="text/javascript" src="../js/jquery-1.6.2.js"></script> 
<script type="text/javascript" src="../js/jquery.validate.js"></script> 
<script type="text/javascript" src="../js/jquery.maskedinput.js"></script> 
<script type="text/javascript" src="../js/myapp.validate.js"></script> 

जिसका उपयोग नहीं किया गया था, के साथ प्रयास किया। फिर भी यह मेरी जेएस फाइलों को ढूँढने में सक्षम नहीं था। मेरे सभी जे एस फ़ाइलें

Web pages 
     |_ js 
      |_jquery-1.6.2.js,my.validate.js,jquery.validate.js,jquery.maskedinput.js 

के तहत रखा जाता है मैं समाधान Using jQuery with JSF 2.0's resource पर तैनात में से एक करने की कोशिश की, लेकिन कोई सफलता मिली।

कृपया मुझे इसके लिए एक समाधान का सुझाव दें। मैं AJAX के साथ जेएसएफ बिल्टिन सत्यापन का उपयोग नहीं करना चाहता, क्योंकि हमने कोड को जेएसपी से जेएसएफ में स्थानांतरित कर दिया है और सत्यापन पहले से ही लिखा गया है। मैं मौजूदा jQuery सत्यापन का पुन: उपयोग करना चाहता हूं जिसे मैंने पहले लिखा था।

उत्तर

27

<h:outputScript> (और <h:outputStylesheet>) /resources फ़ोल्डर से संसाधन लोड करता है। आपको उस फ़ोल्डर में स्क्रिप्ट डालना होगा।

WebContent 
|-- resources 
| `-- js 
|  |-- jquery-1.6.2.js 
|  |-- myapp.validate.js 
|  |-- jquery.validate.js 
|  `-- jquery.maskedinput.js 
|-- WEB-INF 
: 

तो निम्न स्क्रिप्ट घोषणाओं से काम करना चाहिए:

<h:outputScript name="js/jquery-1.6.2.js" /> 
<h:outputScript name="js/jquery.validate.js" /> 
<h:outputScript name="js/jquery.maskedinput.js" /> 
<h:outputScript name="js/myapp.validate.js" /> 

(ध्यान दें कि मैं library विशेषता छोड़ा जाता है, क्योंकि नाम "js" एक real library का संकेत नहीं है)

कि आपका <script> दृष्टिकोण असफल रहा है शायद गलत रिश्तेदार पथ का उपयोग करके होता है। आपको यह समझने की आवश्यकता है कि मौजूदा अनुरोध URL के सापेक्ष संसाधनों का समाधान किया गया है, न कि सर्वर साइड डिस्क फ़ाइल सिस्टम में उनके पथ के लिए।

+0

@ बलुससी-तो यह स्वचालित रूप से संसाधन फ़ोल्डर के अंतर्गत दिखता है ?? यदि ऐसा है तो इसका मतलब है कि मुझे अपनी वेब सामग्री --- सीएसएस, छवियों आदि को केवल संसाधनों के तहत रखना है ??? क्या यह netbeans में सेट एक std फ़ोल्डर संरचना है ?? – enthusiastic

+0

दस्तावेज कहता है, हां। नहीं, यह Netbeans से पूरी तरह से असंबंधित है। यह सिर्फ एक उपकरण है। – BalusC

+0

@ बालससी आप कहते हैं कि आपने लाइब्रेरी विशेषता छोड़ी है क्योंकि यह वास्तविक पुस्तकालय का संकेत नहीं देती है। आप का क्या तात्पर्य है? किस तरह के नामों का उपयोग किया जा सकता है? पुस्तकालय संसाधनों के तहत फ़ोल्डर के नाम से मेल नहीं खाता है? – user579674

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