2013-02-06 42 views
6

下面是我在身體該功能必須在沒有指定一個默認命名空間的前綴使用

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

下面寫的代碼是我在DIV

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

寫了上面的代碼代碼,必須顯示UserInfo表中的姓和名...... UserInfoList包含UserInfo對象,而UserInfo包含姓和名。因此,使用索引值爲「0」的userInfoList調用POJO中定義的getFirstName。

的錯誤,我得到的是

org.apache.jasper.JasperException:/requestorGroup.jsp(63,59)函數獲取必須以前綴使用時未指定默認命名空間

回答

10

如果UserInfo有一個名字和姓氏,並userInfoUserInfo類型,調用get(0)它是沒有意義的:它不是一個列表,它沒有任何一個元素。它有一個名字和一個姓氏。

你只需要

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

JSP表達式語言(EL)經由吸氣訪問屬性。所以你不應該使用吸氣劑,而只是使用屬性名稱:firstName

您還應該避免在JSP中使用scriptlet,並將從數據庫獲取數據的代碼放入servlet中。而且,4條線中的2條是完全不必要的。該代碼應該減少到:

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

它的工作..很大的幫助。謝謝 – ashlesha

+0

是不通過方法訪問bean屬性,只需直接訪問它們。確保屬性應該公開。 – Akash5288

相關問題