2011-05-11 85 views
0

我有一個學生類,StudentDao類,StudentDetails類和StudentController
學生班級有以下情況:獲取從對象特定值在春季控制器

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

StudentDao會從DB這些細節,StudentDetails類返回在下列方法中列出這些細節: -

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

} 

在我的控制器中,我使用HashMap來獲取學生d etails像

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; 
} 

我米能使用students.studentNamestudents.studentGrade等爲1只要求在Jsp顯示這些值。

但我的問題是,我想在referenceData方法使用studentNamestudentGrade進一步在我的控制器(return語句之前ofcourse),但我不是得到它的正確途徑。

回答

1

我不認爲我明白你的問題。在參考數據中,你有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; 
} 

或者您可以更有效地構建您的數據庫查詢,從而您的列表中只有一個對象。那將是你正在尋找的學生。