В Sprig MVC, когда вызывается аннотация @ReqeustMapping с методом GET, он пытается найти шаблон html с именем, определенным в возвращаемом значении.
@RequestMapping("/posts/edit/{id}")
public String edit(PostForm postForm) {
return "posts/edit/{id}"; //This line throws exception.
}
Итак, здесь вы должны вернуть имя html-шаблона в папке ресурсов (не URL)
Так что я предполагаю, что оно должно быть
@RequestMapping("/posts/edit/{id}")
public String edit(PostForm postForm) {
return "views/mytemplate";
}
Ошибка явно указывает на то, что он не может найти шаблон в папке ресурсов.Ваш код пытается найти шаблон тимилиста в папке «edit» в папке «posts» под папкой resources с именем «{id}», но его там нет, поэтому он выдает ошибку.
Я предлагаю изменить возвращаемое значение метода GET, как я упоминал выше.
Если вам нужно передать какие-либо параметры в представление, используйте класс Model.Если значение параметров должно быть вычислено из {id}, то вы можете использовать @PathVariable, чтобы сопоставить идентификатор с параметром.
@RequestMapping("/posts/edit/{id}")
public String edit(@PathVariable(value="id") String id, Model model) {
// do something here to get values using the id
....
model.addAttribute("parameter1", parameter1);
return "views/mytemplate";
}
Кстати, вам не нужен параметр PostForm в методе GET, поскольку он не передает никакие параметры postForm в теле при его вызове.Вы можете оставить это поле пустым.
Надеюсь, это поможет, получайте удовольствие от кодирования!:)