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

2022-09-01 22:49:49

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

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

// 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

如果未指定路径变量的名称,Spring 将尝试使用参数的名称。

因此在

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

Spring将尝试找到一个名为的路径变量,而您有一个名为 的路径变量。studentIdstudent

只需添加一个值属性

@PathVariable("student") Integer studentId

或更改参数名称。


答案 2

推荐