JSP迭代继承的用户定义的类

时间:2014-11-04 19:20:45

标签: java mysql spring jsp

我有两个实体类代表我的数据库中的两个表。 这两个表是用户和学生。 Student类(userID,studentID,classID)继承自User类(id,firstName,lastName,email)。 当我向学生查询数据库时,我返回了一个List。然后我想使用该列表迭代并显示每个学生的firstName,lastName,email和classID。但是,它只显示classID。我相信这是因为该对象是一个学生,它只包含三个字段(userID,studentID,classID),​​并且不包含名称和电子邮件。但是,因为Student类扩展了User类,我认为它仍然可以获取其他字段。

这是我的课程

用户

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

1 个答案:

答案 0 :(得分:1)

JSP代码似乎很好。

如果这些值在Student对象中不可用,并且应该是由于层次结构,则问题在于在查询完成后填充Student对象的代码。您可能希望验证如何创建Student对象以及未设置属于User对象的字段的原因。