2013-02-06 24 views
6

Dưới đây là đoạn code tôi đã viết trong cơ thểChức năng phải được sử dụng với một tiền tố khi một không gian tên mặc định không được xác định

<% List<UserInfo> userInfoList = new ArrayList<UserInfo>(); 
    UserInfo userInfo = new UserInfo(); 
    userInfoList = new CRUDOps().retrieveUserDataList(); 
    pageContext.setAttribute("userInfoList", userInfoList);%> 

Dưới đây là đoạn code tôi đã viết trong div

<c:forEach var="userInfo" items="${userInfoList}"> 
    <input type="radio" name="buyer" value="hhhh">${userInfo.get(0).getFirstName()}/><br /> 
    <c:forEach> 

Trên đang , phải hiển thị tên và họ từ bảng UserInfo ... UserInfoList chứa đối tượng UserInfo và UserInfo có họ và tên. Vì vậy, bằng cách sử dụng userInfoList với giá trị chỉ mục là "0", hãy gọi getFirstName được định nghĩa trong POJO.

Các lỗi mà tôi nhận được là

org.apache.jasper.JasperException: /requestorGroup.jsp(63,59) Chức năng get phải được sử dụng với một tiền tố khi một không gian tên mặc định không được xác định

Trả lời

10

Nếu UserInfo có một cái tên đầu tiên và cuối cùng tên, và userInfo là loại UserInfo, gọi get(0) trên nó làm cho không có ý nghĩa: nó không phải là một danh sách, và nó không có bất kỳ yếu tố đầu tiên. Nó có tên và họ.

Bạn chỉ cần

<c:forEach var="userInfo" items="${userInfoList}"> 
    <input type="radio" name="buyer" value="hhhh">${userInfo.firstName}/><br /> 
<c:forEach> 

Các JSP biểu hiện ngôn ngữ (EL) truy cập các thuộc tính thông qua thu khí. Vì vậy, bạn không nên sử dụng getter, nhưng chỉ đơn giản là tên của tài sản: firstName.

Bạn cũng nên tránh tập lệnh trong JSP và đặt mã nhận dữ liệu từ cơ sở dữ liệu vào một servlet để thay thế. Hơn nữa, hai trong số 4 dòng là hoàn toàn không cần thiết. Mã nên được giảm xuống:

List<UserInfo> userInfoList = new CRUDOps().retrieveUserDataList(); 
pageContext.setAttribute("userInfoList", userInfoList); 
+0

Nó hoạt động .. trợ giúp tuyệt vời. Cảm ơn – ashlesha

+0

Có không truy cập các thuộc tính bean theo phương thức, chỉ cần truy cập chúng trực tiếp. Đảm bảo các thuộc tính phải được công khai. – Akash5288

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