2011-08-28 9 views
7

द्वारा लोड किया गया है, मैं अपने JSF पृष्ठ में जावास्क्रिप्ट और सीएसएस फ़ाइलों को जोड़ने के लिए जेएसएफ घटक में @ResourceDependency एनोटेशन का उपयोग कर रहा हूं।एक जावास्क्रिप्ट फ़ाइल में एक ईएल प्राप्त करना, @ResourceDependency

मेरी जावास्क्रिप्ट फ़ाइल में, मुझे एक अन्य संसाधन फ़ाइल (ए। एसडब्ल्यूएफ फ़ाइल, जो मेटा-आईएनएफ/संसाधनों में स्थित है, जेएसएफ की आवश्यकता है) को संदर्भित करने की आवश्यकता है। मैंने अपने जावास्क्रिप्ट कोड में #{resource['swf:file.swf']} ईएल अभिव्यक्ति डालने का प्रयास किया, लेकिन इसे हल नहीं किया जाएगा।

exapmle के लिए, सर्वर में निम्नलिखित जे एस फ़ाइल के लिए:

var instance = new JSClass(); 
instance.setResourceUrl("#{resource['swf:file.swf']}"); 

ब्राउज़र हो जाता है:

var instance = new JSClass(); 
instance.setResourceUrl("#{resource['swf:file.swf']}"); 

जो गलत है।

जब मैं एक ही ईएल को सीएसएस फ़ाइल में डालता हूं, तो यह ठीक से हल हो जाता है।

.instance-css-class { 
    background: url("#{resource['swf:file.swf']}") 
} 

ब्राउज़र हो जाता है: सर्वर में निम्नलिखित सीएसएस फ़ाइल के लिए

.instance-css-class { 
    background: url("/webapp/javax.faces.resource/file.swf.jsf?ln=swf") 
} 

वास्तव में मैं क्या जरूरत है कौन सा है, लेकिन जे एस फ़ाइल में।

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

कृपया ध्यान दें कि उपरोक्त कोड टैग लाइब्रेरी का हिस्सा है, इसलिए those जैसे कामकाज का उपयोग नहीं किया जा सकता है।


संपादित - लगता है कि सीएसएस वैकल्पिक हल, संभव नहीं है के बाद से मैं एक सीएसएस फ़ाइल से सीएसएस गुण प्राप्त करने के लिए एक तरह से नहीं देख सकता। तो किसी भी (कामकाजी) कामकाज को भी खुशी से स्वीकार किया जाएगा।

+0

मैंने हाल ही में अपने आश्चर्य की बात की, कि ईएल का मूल्यांकन सीएसएस में किया गया है। Mojarra कार्यान्वयन एक संसाधन हैल्पर का उपयोग करता है जो एक Faces संसाधन अनुरोध द्वारा अनुरोधित संसाधनों के भीतर ईएल अभिव्यक्तियों को हल करने में सक्षम है। Thats क्यों मुझे आश्चर्य है कि ईएल का मूल्यांकन जेएस फाइलों में नहीं किया जाता है क्योंकि यह एक ही प्रकार का अनुरोध है। अगर कोई इस पर कुछ प्रकाश डाल सकता है तो अच्छा होगा। – tasel

उत्तर

0

बलुस ने एक समान प्रश्न का उत्तर here में दिया है। हालांकि पहला समाधान लागू करने के लिए सबसे आसान है, मैं आपको तीसरे के साथ जाने की सलाह दूंगा, जो मेरी राय में, सही तरीका है।

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