2012-06-19 40 views
8

Tôi gặp lỗi trong JSP và tôi không thể tìm ra nguyên nhân gây ra lỗi đó. Tôi đã bao gồm tất cả các thư viện thích hợp và tôi đã đảm bảo tuân theo quy ước bean về chữ hoa/chữ thường. Đây là mã có liên quan trong JSP:javax.el.PropertyNotFoundException trong trang JSP

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

relevantDataList<MyData>. Đối với các mục đích của câu hỏi này, nó là sufficent để nói MyData là một lớp học có chứa một Double giá được đặt tên (với một Getter và Setter theo quy ước đậu). Khi tôi cố gắng tải trang này, tôi nhận được lỗi sau trong nhật ký máy chủ (Tomcat 7.0.22):

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

Tại sao tôi gặp lỗi này và cách khắc phục?

+1

phương thức truy cập là công khai, là lớp bên trong MyData? –

+1

Các phương thức truy cập đều công khai. Bản thân lớp học không được công khai. –

Trả lời

22

Vấn đề thực tế là do mức độ hiển thị của lớp MyData. Tôi đã tự động tạo lớp học MyData trong Netbeans nhưng tôi không nhận thấy rằng không có từ khóa public ở phía trước tên lớp học. Điều này có nghĩa là vào thời điểm nó đến JSP, không có cách nào để đọc các thuộc tính trong MyData.

Tôi đã đổi loại thành public và sự cố đã được giải quyết.

+0

Tôi chạy vào cùng một vấn đề. đã chuyển loại sang tệp mới, nhưng quên thêm công khai ... cảm ơn! –

+0

doh, tôi đã có thể tìm ra điều này! Cảm ơn bài đăng này! –

+0

Vấn đề này cũng phát sinh sau khi tôi sử dụng UCDectector để xóa mã không cần thiết trong nhật thực. Vì chương trình không thể diễn giải mã JSTL, nó gợi ý rằng tôi đã thay đổi công cụ sửa đổi của lớp thành "mặc định", và tôi đã làm. Cảm ơn sự giúp đỡ để xác định vấn đề của tôi. – KjetilNordin

Các vấn đề liên quan