2013-02-06 3 views
6

Im Folgenden angegeben wird, ist der Code, den ich in Körper schriebDie Funktion muss mit einem Präfix verwendet werden, wenn ein Standard-Namespace nicht

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

Unten ist der Code, den ich in div schrieb

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

Above Code , müssen den Vor- und Nachnamen aus der UserInfo-Tabelle anzeigen ... UserInfoList enthält das UserInfo-Objekt und UserInfo hat Vor- und Nachnamen. Verwenden Sie also userInfoList mit dem Indexwert "0" und rufen Sie den in POJO definierten getFirstName auf.

Der Fehler, ich bin immer ist

org.apache.jasper.JasperException: /requestorGroup.jsp(63,59) Die Funktion get muss mit einem Präfix verwendet werden, wenn eine Standard-Namespace nicht angegeben

Antwort

10

Wenn UserInfo hat einen Vornamen und einen Nachnamen, und userInfo ist vom Typ UserInfo, rufe get(0) auf es keinen Sinn macht: es ist nicht eine Liste, und es hat kein erstes Element. Es hat einen Vor- und einen Nachnamen.

Sie müssen lediglich

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

Die JSP Expression Language (EL ) greift auf Eigenschaften über Getter. Sie sollten also nicht den Getter verwenden, sondern einfach den Namen der Eigenschaft: firstName.

Sie sollten auch Scriptles in JSP vermeiden und den Code, der Daten von der Datenbank erhält, stattdessen in ein Servlet einfügen. Außerdem sind zwei der vier Zeilen völlig unnötig. Der Code sollte reduziert werden auf:

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

Es funktioniert .. große Hilfe. Danke – ashlesha

+0

Ja Zugriff auf Bean-Eigenschaften nicht durch Methoden, greifen Sie einfach direkt darauf zu. Stellen Sie sicher, dass die Eigenschaften öffentlich sein müssen. – Akash5288