У меня есть два класса сущностей, которые представляют две таблицы в моей базе данных. Две таблицы - это Пользователь и Студент. Класс Student (userID, studentID, classID) наследуется от класса User (id, firstName, lastName, email). Когда я запрашиваю базу данных для студентов, у меня есть список. Затем я хочу использовать этот список для итерации и отображения firstName, lastName, email и classID для каждого учащегося. Однако он отображает только идентификатор classID. Я считаю, что это потому, что объект имеет Student, который содержит только три поля (userID, studentID, classID) и не содержит имен и электронной почты. Однако, поскольку класс Student расширяет класс User, я думал, что он все равно сможет получить другие поля.JSP Iterate над пользовательским классом, который наследует
Вот мои классы
пользователя
public class User {
private int id;
private String firstName;
private String lastName;
private String email;
public User(){
}
public String getFullName(){
return firstName +" "+ lastName;
}
public int getID() {
return id;
}
public void setID(int id) {
this.id = id;
}
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 String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Студент
public class Student extends User {
private int userID;
private int studentID
private int classID
public int getUserID() {
return userID;
}
public void setUserID(int userID) {
this.userID = userID;
}
public int getStudentID() {
return studentID;
}
public void setStudentID(int studentID) {
this.studentID = studentID;
}
public int getClassID() {
return classID;
}
public void setClassID(int classID) {
this.classID = classID;
}
}
JSP
<c:forEach items="${students}" var="student">
<tr>
<td>${student.firstName} ${student.lastName}</td>
<td>${student.email}</td>
<td>${student.classID}</td>
</tr>
</c:forEach>
В моем классе контроллера
List<Student> students = getStudents();
output.addObject("students", students);
Как я могу получить его, чтобы показать, user.firstName, user.lastName, user.email, student.classID
Я был бы удивлен, если это действительно работает для classId, так как ваш геттер не соответствует тому, что вы написали в JSP: getClassId карты для «classId», а не «classID». Вы должны установить полный список для JSP, чтобы мы могли убедиться, что вы сделали все прямо там (и, возможно, исправьте список Student.java, который разбит посередине). –
Я изменил его на classID –
Разве что весь JSP? Если это так, вам нужно импортировать тег tag. Поместите это в верхнюю часть файла: <% @ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c"%> –