2012-04-03 15 views
15

में आंतरिक कक्षा तक नहीं पहुंच सकता है मैं जेएसएफ 2.0 का उपयोग कर रहा हूं। मेरे पास एक प्रबंधित बीन है जिसे मैं अपने एक्सएचटीएमएल पेज के माध्यम से एक्सेस कर सकता हूं। बीन के अंदर मैंने एक आंतरिक कक्षा घोषित की। मैं प्रबंधित बीन के ArrayList<String> तक पहुंच सकता हूं लेकिन ArrayList<InnerClass> नहीं और मुझे त्रुटि मिलती है कि इनर क्लास में पठनीय संपत्ति नहीं है। किसी को पता है कि क्या गलत है?बीन

उत्तर

30

ऐसा हो सकता है यदि आंतरिक वर्ग public नहीं है। यह तब पैकेज के बाहर अन्य कक्षाओं के लिए अदृश्य हो जाएगा (जैसे जेएसएफ/ईएल स्वयं!)। सुनिश्चित करें कि आंतरिक कक्षा public है जब भी आपको JSF/EL द्वारा इसे एक्सेस करने की आवश्यकता होती है।

public class Bean { 

    public class InnerClass { 
     // ... 
    } 

} 

अन्यथा यह String के रूप में व्याख्या की जाएगी और आप की तरह

javax.el.ELException भ्रामक अपवाद मिल जाएगा: /test.xhtml: संपत्ति 'someProperty' प्रकार java.lang पर पठनीय नहीं ।

जब आप #{innerClass.someProperty} तक पहुंचना चाहते हैं।

+1

मुझे यह एक बग की तलाश के 2 घंटे बाद मिला। मुझे लगता है कि उन्हें कम से कम अपवाद को और स्पष्ट करना चाहिए। यहां स्ट्रिंग अपेक्षित प्रकार को संदर्भित करती है (मेरे मामले में यह बुलियन था), जो वास्तव में भ्रमित है। – NeplatnyUdaj

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