缺少方法参数类型[java.lang.Integer]的URI模板变量'studentId' - Spring MVC

时间:2013-12-20 23:24:24

标签: java spring-mvc uri

当我尝试重定向到某个视图时,我收到此错误。

在一个处理程序方法中,我有:

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

我在这里缺少什么?

1 个答案:

答案 0 :(得分:26)

如果您没有指定路径变量的名称,Spring会尝试使用您的参数名称。

因此在

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

当你有一个名为studentId的路径变量时,Spring会尝试找到一个名为student的路径变量。

只需添加值属性

即可
@PathVariable("student") Integer studentId

或更改参数名称。