从弹簧控制器中的Object获取特定值

时间:2011-05-11 11:41:50

标签: java spring

我有一个学生班,StudentDao班,StudentDetails班级和StudentController
学生班有以下实例:

 private String studentId;
 private String studentName;
 private String studentGrade;

StudentDao从DB获取这些详细信息,StudentDetails Class按以下方法返回这些详细信息的列表: -

public List<Student> getSpecificStudentInfo(String studentId)
{
    List<Student> studentInfo=studentDao.getSpecificStudentInfo(studentId);     
    return studentInfo;

}

在我的控制器中,我使用HashMap获取学生详细信息,如

public Map<String, Object> referenceData(HttpServletRequest req)throws ServletException, IOException 
{

    String studentId=req.getParameter("studentId");
    Map<String, Object> studentRecord = new HashMap<String, Object>();
studentRecord.put("students",studentDetails.getSpecificStudentInfo(studentId));
    return studentRecord;
}

我可以使用Jspstudents.studentName等在students.studentGrade中显示这些值,这是一项要求。

但我的问题是我想在studentName方法中使用studentGradereferenceData进一步使用{{1}}方法(在返回语句之前)但我没有以正确的方式使用它

1 个答案:

答案 0 :(得分:1)

我不认为我理解你的问题。在referenceData中,您已经有了来自请求的studentId。您仍然可以使用循环列表提取等级。

public Map<String, Object> referenceData(HttpServletRequest req)throws ServletException, IOException 
{

    String studentId=req.getParameter("studentId");
    Map<String, Object> studentRecord = new HashMap<String, Object>();
    List<Student> listOfStudents = studentDetails.getSpecificStudentInfo(studentId); 
    String studentGrad = getGradeFor(studentId); 
studentRecord.put("students",listOfStudents);
    return studentRecord;
}
/* check nulls, empty list etc. */
public String getGradeFor(List<Student> listOfStudent, String id) {
       for (Student student: listOfStudent) {
            if (student.getId().equals(id)) return student.getGrade();
       }
       return null;
}

或者您可以更有效地构建数据库查询,因此您只能在列表中获得一个对象。这将是你正在寻找的学生。