Метод toString () не выполняется при использовании JSTL - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть ArrayList с некоторыми объектами класса, которые принимают переменные в конструкторе, а также с методами получения, установки и метода toString (). Так что я хочу l oop через этот ArrayList с тегом, предоставленным JSTL. Метод toString (), кажется, не выполняет свою работу, хотя.

<% //adding data to arraylist
List<Student> dataList = new ArrayList<Student>();
dataList.add(new Student("John", "Doe", false));
dataList.add(new Student("El", "Chappo", false));
dataList.add(new Student("Ciano", "Mehdol", false));
dataList.add(new Student("Lereone", "Zuba", true));
%>

Publi c class Student {// basi c класс модели с конструктором, методами getters / setters, toString ()

private String firstName;
private String lastName;
private boolean goldCustomer;

public Student(String firstName, String lastName, boolean goldCustomer) {
    super();
    this.firstName = firstName;
    this.lastName = lastName;
    this.goldCustomer = goldCustomer;
}

public String getFirstName() {
    return firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}

public String getLastName() {
    return lastName;
}

public void setLastName(String lastName) {
    this.lastName = lastName;
}

public boolean isGoldCustomer() {
    return goldCustomer;
}

public void setGoldCustomer(boolean goldCustomer) {
    this.goldCustomer = goldCustomer;
}

@Override
public String toString() {
    return "Student [firstName=" + firstName + ", lastName=" + lastName + ", goldCustomer=" + goldCustomer + "]";
}

}

И вот я перебираю ArrayList:

<c:forEach var="listLoop" items="<%= dataList %>">
${listLoop}

<br/><br/>
</c:forEach>

Все выглядит хорошо, за исключением того, что метод toString () не работает.

1 Ответ

0 голосов
/ 08 февраля 2020

Попробуйте сделать что-то вроде этого:

<% //adding data to arraylist
List<Student> dataList = new ArrayList<Student>();
dataList.add(new Student("John", "Doe", false));
dataList.add(new Student("El", "Chappo", false));
dataList.add(new Student("Ciano", "Mehdol", false));
dataList.add(new Student("Lereone", "Zuba", true));

pageContext.setAttribute("list", dataList); <%-- to reference list into page scope --%>
%>
...

<c:forEach var="student" items="${list}">
     <c:out value="${student}"/>
</c:forEach>
...