2012-01-20 10 views
6

तो, मेरे टेम्पलेट एक footer.xhtmlजेएसएफ और फेसलेट का उपयोग करके मेरे टेम्पलेट में सशर्त रूप से फ़ाइल कैसे शामिल करें?

<ui:include src="/WEB-INF/testtaker/Footer.xhtml"/> 

मुझे क्या करना चाहते हैं कुछ उपयोगकर्ताओं के आधार पर पाद लेख बदल रहा है अलग पाद _ ???। एक्सएचटीएमएल फाइल करने के लिए PREF भी शामिल है।

तो, मैं कुछ इस तरह करना चाहते हैं:

<ui:include src="/WEB-INF/testtaker/Footer_001.xhtml"> 
     Content from original Footer.xhtml 
</ui:include> 

और अगर Footer_001.xhtml मौजूद नहीं है, तो अन्यथा फ़ाइल की सामग्री का उपयोग यह टैग के बीच सामग्री का उपयोग करते हैं, ।

मुझे पता है कि यह थोड़ा अजीब लगता है, लेकिन यह मेरी मौजूदा साइट को अनुकूलित करने की एक बड़ी समस्या को हल करेगा जिसमें सभी जगहों पर बदलाव शामिल होंगे। इसके अलावा मुझे यकीन नहीं है कि फाइल हाथ से पहले मौजूद होगी या नहीं।

कोई विचार?

उत्तर

4

आप <ui:include src> में ईएल का उपयोग कर सकते हैं।

<ui:include src="/WEB-INF/testtaker/Footer#{user.prefs.footerId}.xhtml" /> 

तो #{user.prefs.footerId} रिटर्न null या कोई रिक्त स्ट्रिंग, यह सिर्फ Footer.xhtml हो जाएगा।

+0

आह, हाँ। मैं ऐसा कुछ करने की योजना बना रहा हूं। लेकिन समस्या तब आती है जब src Footer_001.xhtml जैसे कुछ हल करता है और वह फ़ाइल मौजूद नहीं है (अभी तक) इसलिए मैं "डिफ़ॉल्ट" Footer.xhtml की सामग्री को शामिल करना चाहता हूं। क्या इसका कोई मतलब है? :) –

+1

आपके पास पहली जगह अमान्य पाद लेख आईडी क्यों होगी? क्या यह 100% उपयोगकर्ता नियंत्रित इनपुट है? (यदि हां, तो क्या आप ऐसे मामले में हमले वैक्टरों के बारे में जानते हैं?) क्यों उपलब्ध फूटर आईडी के साथ एंडयूसर को ड्रॉपडाउन प्रदान नहीं करते? वैसे भी, यदि आप उस फ़ूटर मौजूद हैं तो आप प्रीफ़्स कन्स्ट्रक्टर या शायद गेटर विधि में जांच सकते हैं। आप यह जांच कर ऐसा कर सकते हैं कि 'बाहरी कॉन्टेक्स्ट # getResource() 'रिटर्न' शून्य 'है या नहीं। यदि यह अस्तित्व में नहीं है, तो इसके बजाय 'शून्य' वापस करें। – BalusC

+0

धन्यवाद। यह बहुत अच्छा काम किया। मुझे पता है कि यह एक फ़ाइल में शामिल होने की कोशिश करने के लिए थोड़ा अजीब बात है जो मौजूद नहीं है लेकिन हमारे पास कुछ मूर्खतापूर्ण आवश्यकताएं हैं। वैसे भी, आपका सुझाव हमें समाधान के लिए सही तरीके से ले जाता है। धन्यवाद! –

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