2016-03-21 9 views
0

I zu Call habe den folgenden Code:Richtige Art und Weise eine POJO Methode von EL in JSP

public class ChatUser { 
public ChatUser(String UserId, boolean isSelected) { 
    this.UserId = UserId; 
    this.isSelected = isSelected;  
} 
public String getUserId() { 
    return UserId; 
} 
public void setUserId(String UserId) { 
    this.UserId = UserId; 
} 
public boolean isIsSelected() { 
    return isSelected; 
} 
public void setIsSelected(boolean isSelected) { 
    this.isSelected = isSelected; 
}  
private String UserId; 
private boolean isSelected;  

} 

Und ich Zugriff auf die Methode von EL

<rows> 
    <c:forEach var="user" items='${requestScope.userList}'  varStatus="indexnum" > 
     <row id="${user.getUserId()}"> 
      <cell>${user.isIsSelected()}</cell> 
      <cell>${user.getUserId()}</cell> 
     </row> 
    </c:forEach> 
</rows> 

Aber es gibt den folgenden Fehler :

javax.el.MethodNotFoundException: Method not found: class s.getUserId() 

Manchmal funktioniert es, aber nicht konsistent.

JSP Error

+0

Leider habe ich geschrieben den falschen Fehler - Dieser zeigt: - javax.el.MethodNotFoundException: Methode nicht gefunden: Klasse s.getUserId() – Chanky

Antwort

-1

Camel Fall muss in Feldnamen von Java Bean verwendet werden. Der Variablenname sollte userId sein und ausgewählt sein. In Ihrem Fall folgende Verwendung:

<rows> 
    <c:forEach var="user" items='${requestScope.userList}' varStatus="indexnum" > 
     <row id="${user.UserId}"> 
      <cell>${user.isSelected}</cell> 
      <cell>${user.UserId}</cell> 
     </row> 
    </c:forEach> 
</rows> 

+0

Bearbeiten '< row id = "$ {user.getUserId()}"> 'auch. –

+0

Java-Eigenschaft wird nur mit dem Namen der Eigenschaft zugegriffen. Da das Feld verwendet wird, ist private String UserId; , el muss nur $ {user.UserId} sein. –

+0

In der erwähnten Zeile ist es wie 'user.getUserId'. Hat dich gebeten, das zu bearbeiten. In Ihrem Auftrag bearbeitet :) –