2012-06-19 24 views
8

मुझे जेएसपी में एक त्रुटि मिल रही है और मैं यह नहीं समझ सकता कि इसका क्या कारण है। मैंने सभी उपयुक्त पुस्तकालयों को शामिल किया है और मैंने अपरकेस/लोअरकेस पर बीन सम्मेलन का पालन करना सुनिश्चित कर लिया है। यहाँ JSP में प्रासंगिक कोड है:javax.el.PropertyNotFoundException एक जेएसपी पृष्ठ

<c:forEach items="${relevantData}" var="entry"> 
    <p>${entry.price}</p> 
</c:forEach> 

relevantData एक List<MyData> था। इस प्रश्न के प्रयोजनों के लिए यह कहना पर्याप्त है कि MyData एक वर्ग है जिसमें Double नामित मूल्य (बीन सम्मेलन के बाद गेटटर और सेटर के साथ) शामिल है। जब मैं सर्वर लॉग (बिलाव 7.0.22) में इस पेज मैं निम्न त्रुटि प्राप्त लोड करने का प्रयास:

javax.el.PropertyNotFoundException: 
Property 'price' not readable on type java.lang.Double 

मैं इस त्रुटि क्यों मिल रही है और मैं इसे कैसे ठीक करूं?

+1

एक्सेसर विधियां सार्वजनिक हैं, माईडाटा आंतरिक कक्षा है? –

+1

एक्सेसर विधियां सभी सार्वजनिक हैं। कक्षा स्वयं सार्वजनिक नहीं थी। –

उत्तर

22

समस्या वास्तव में MyData कक्षा की दृश्यता के कारण हुई थी। मैंने Netbeans में MyData कक्षा को स्वत: जेनरेट किया था लेकिन मुझे नहीं पता था कि वर्ग नाम के सामने public कोई कीवर्ड नहीं था। इसका मतलब था कि जब तक यह जेएसपी तक पहुंचा तो MyData में गुणों को पढ़ने के लिए कोई रास्ता नहीं था।

मैंने टाइप को public में बदल दिया और समस्या हल हो गई।

+0

मैं एक ही समस्या में भाग गया। स्थानांतरित की गई नई फाइल में, लेकिन सार्वजनिक जोड़ने के लिए भूल जाओ ... धन्यवाद! –

+0

दोह, मुझे यह पता लगाने में सक्षम होना चाहिए था! इस पोस्ट के लिए धन्यवाद! –

+0

ग्रहण में अनावश्यक कोड को हटाने के लिए मैंने UCDectector का उपयोग करने के बाद भी यह समस्या उत्पन्न की। चूंकि कार्यक्रम जेएसटीएल-कोड की व्याख्या करने में असमर्थ था, इसने सुझाव दिया कि मैंने कक्षा के संशोधक को "डिफ़ॉल्ट" में बदल दिया है, और मैंने किया। मेरी समस्या का पता लगाने में मदद के लिए धन्यवाद। – KjetilNordin