2013-02-06 9 views
6

Di seguito è il codice che ho scritto nel corpoLa funzione deve essere utilizzata con un prefisso quando un namespace predefinito non è specificato

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

seguito è riportato il codice che ho scritto nel div

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

Sopra codice , deve visualizzare il nome e il cognome dalla tabella UserInfo ... UserInfoList contiene l'oggetto UserInfo e UserInfo ha nome e cognome. Quindi, usando userInfoList con valore di indice come "0", chiamando getFirstName definito in POJO.

L'errore che sto ottenendo è

org.apache.jasper.JasperException: /requestorGroup.jsp(63,59) la funzione Get deve essere utilizzato con un prefisso quando un namespace predefinito non è specificato

risposta

10

Se UserInfo ha un nome e un cognome, e userInfo è di tipo UserInfo, chiamando get(0) su di esso non ha senso: non è un elenco, e non hanno alcuna primo elemento. Ha un nome e un cognome.

è sufficiente

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

Il linguaggio delle espressioni JSP (EL ) accessi proprietà tramite getter. Quindi non dovresti usare il getter, ma semplicemente il nome della proprietà: firstName.

È inoltre consigliabile evitare scriptlet in JSP e inserire il codice che recupera i dati dal database in un servlet. Inoltre, due delle 4 linee sono completamente inutili. Il codice dovrebbe essere ridotto a:

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

Funziona .. ottimo aiuto. Grazie – ashlesha

+0

Sì, non accedere alle proprietà del bean con metodi, basta accedervi direttamente. Assicurati che le proprietà siano pubbliche. – Akash5288

Problemi correlati