2013-04-10 5 views
5

में नहीं, मैं माईफेसेस 2.1.9 और प्राइमफेस 3.5 का उपयोग कर रहा हूं। मैंने <p:inputText> के लिए एक कस्टम रेंडरर लागू किया है। यह टॉमकैट के साथ घर पर ठीक काम करता है। लेकिन यह वेबस्पेयर के साथ काम पर काम नहीं करता है। मैंने कस्टम रेंडरर क्लास में ब्रेकपॉइंट्स रखे हैं, लेकिन वे कभी हिट नहीं होते हैं। मैं अपने लॉग में कुछ भी नहीं देखता हूं। हालांकि, जब मैं मानक जेएसएफ <h:inputText> पर एक ही कस्टम रेंडरर पंजीकृत करता हूं, तो यह ठीक काम करता है।प्राइमफेस घटक के लिए कस्टम रेंडरर टॉमकैट में ठीक काम करता है, लेकिन वेबस्पेयर

मैं इसे पंजीकृत कर लिया है faces-config.xml में इस प्रकार है:

<render-kit> 
    <renderer> 
     <component-family>org.primefaces.component</component-family> 
     <renderer-type>org.primefaces.component.InputTextRenderer</renderer-type> 
     <renderer-class>xxx.xxx.xxx.MyInputRenderer</renderer-class> 
    </renderer> 
</render-kit> 

मैं कस्टम रेंडरर के पंजीकरण कैसे दूर करूं?

+1

'RenderKit # addRenderer() 'पर ब्रेकपॉइंट के साथ प्रारंभ करें। – BalusC

+0

धन्यवाद! अब मुझे पता है कि मेरे प्रस्तुतकर्ता को पहले संसाधित किया जाता है, फिर नियमित रेंडरर एड्रेन्डरर के साथ आता है और मेरा ओवरराइट करता है! इसे कैसे हल किया जा सकता है? – KTrum

+0

ठीक है, यह वास्तव में इसे समझाता है। आपका 'चेहरे-config.xml' कहां है? कस्टम मॉड्यूल में जेएआर फ़ाइल '/ WEB-INF/lib' या सीधे वेबएप के '/ WEB-INF' में? यदि जार में, तो लोडिंग ऑर्डर अपरिभाषित है। यदि यह प्राइमफेस से पहले लोड हो जाता है, तो आपको यह समस्या मिलती है। – BalusC

उत्तर

7

कस्टम दाता जो 3 पार्टी घटक पुस्तकालयों के दाता ओवरराइड करने के लिए की जरूरत है, वेब ऐप्लिकेशन की खुद faces-config.xml में पंजीकृत होने के लिए एक faces-config.xml जो रूप में अच्छी तरह /WEB-INF/lib में एक और जार में पैक किया जाता है में नहीं की जरूरत है। जेएआर फाइलों का लोडिंग ऑर्डर अनिर्दिष्ट है, इसलिए ऐसा हो सकता है कि कस्टम रेंडरर लोड हो गया है और से पहले तृतीय पक्ष घटक लाइब्रेरी में से एक है जिसे आप ओवरराइड करना चाहते हैं, ठीक उसी तरह जैसा आप सामना करना चाहते हैं।

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

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