2013-12-20 33 views
9

我在嘗試重定向到某個視圖時收到此錯誤。缺少方法參數類型的URI模板變量'studentId'[java.lang.Integer] - Spring MVC

在一個處理方法,我有:

// get student ID, add it to model, and return redirect URI 
Integer studentId = student.getStudentId(); 
model.addAttribute("studentId", studentId); 
return "redirect:/students/{studentId}"; 

但我沒有得到的參數studentId在這種處理方法:

@RequestMapping(value="/{student}", method = RequestMethod.GET) 
public String getStudent(@PathVariable Integer studentId, Model model) { 

    Student student = studentService.get(studentId); 
    model.addAttribute("student", student); 

    return "student"; 
} 

缺少什麼我在這裏?

回答

20

如果不指定路徑變量的名稱,Spring會嘗試使用參數的名稱。

因此在

@RequestMapping(value="/{student}", method = RequestMethod.GET) 
public String getStudent(@PathVariable Integer studentId, Model model) { 

Spring將試圖找到一個名爲studentId,而你有一個名爲student路徑變量路徑變量。

只需添加一個value屬性

@PathVariable("student") Integer studentId 

或更改參數名稱。

+0

或保留@RequestMapping(value =「/ {'studentID'}」,和@PathVariable Integer'studentID'值相同 – Jaikrat