2017-10-11 26 views
-1

Ich kann keine Schleife auf die Arraylist meiner Objekte in JSTL ausführen. Hier ist der Code das mein Objekt beschreiben:Foreach-Anweisung in JSTL

public class Target implements java.io.Serializable{ 
    private static final long serialVersionUID = 1L; 
    private String login; 
    private String title; 
    private String date; 
    private String description; 
    private String status; 

    public Target() {} 
    public String getLogin() { 
     return login; 
    } 
    public void setLogin(String login) { 
     this.login = login; 
    } 
    public String getTitle() { 
     return title; 
    } 
    public void setTitle(String title) { 
     this.title = title; 
    } 
    public String getDate() { 
     return date; 
    } 
    public void setDate(String date) { 
     this.date = date; 
    } 
    public String getDescription() { 
     return description; 
    } 
    public void setDescription(String description) { 
     this.description = description; 
    } 
    public String getStatus() { 
     return status; 
    } 
    public void setStatus(String status) { 
     this.status = status; 
    } 
} 

Und das ist der Code der JSP-Seite in dem ich versuche, den Inhalt des Arrays zu drucken:

<% 
    if (session.getAttribute("user") == null){ 
     response.sendRedirect("/Organaizer/"); 
     return; 
    } 
    User user = (User) session.getAttribute("user"); 
    request.setAttribute("targets", user.getTargets()); 
%> 
<c:forEach items="${targets}" var="current"> 
     <p>${current.title}</p> 
     <p>${current.login}</p> 
     </c:forEach> 

Leider ist diese Umsetzung nicht Arbeit. Die Daten sind in Ordnung, wenn Sie das Array in Scriptlets verarbeiten, dann funktioniert alles. Was ist mein Fehler?

+3

Welche Fehler haben Sie? – Lokesh

+0

Liefert user.getTargets() eine Liste ? Überprüfen Sie auch, dass user.getTargets(). Size() nicht 0 ist. –

+0

Es gibt keine Fehler, nur gibt es keine Ausgabe des Inhalts. Die Methode gibt ein leeres Array –

Antwort

0

tun es gerade wie

<c:forEach items="${user.targets}" var="current"> 
    <p>${current.title}</p> 
    <p>${current.login}</p> 
</c:forEach 

der loszuwerden unter

User user = (User) session.getAttribute("user"); 
request.setAttribute("targets", user.getTargets()); 
+0

Leider hat diese Entscheidung nicht dazu beigetragen, das gewünschte Ergebnis zu erreichen –

+0

@ ОлегКорытников Sie noch nicht erwähnt, welchen Fehler du bekommst? – Lokesh

+0

Es gibt keine Fehler, nur gibt es keine Ausgabe des Inhalts. Die Methode gibt ein leeres Array zurück –

0

ich glaube, der Fehler, den Sie tun, ist die Kern-Tag-Bibliothek nicht importieren.

Foreach loop iteration return blank

+0

Core-Tag-Bibliothek funktioniert, verifiziert für andere Daten –

+0

Haben Sie überprüft, was $ {targets} vor Ihrer for-Schleife druckt –