特定のビューにリダイレクトしようとすると、このエラーが発生します。
1つのハンドラーメソッドで:
// 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";
}
ここで何が欠けていますか?
パス変数の名前を指定しない場合、Springはパラメーターの名前を使用しようとします。
したがって、
@RequestMapping(value="/{student}", method = RequestMethod.GET)
public String getStudent(@PathVariable Integer studentId, Model model) {
SpringはstudentId
というパス変数がある間、student
というパス変数を見つけようとします。
値属性を追加するだけです
@PathVariable("student") Integer studentId
または、パラメータ名を変更します。