Я работаю с весенней загрузкой и тимилифом и получаю «Ни BindingResult, ни простой целевой объект для имени компонента bookDto
, доступные как атрибут запроса», когда я возвращаю страницу индекса после успешного входа в систему
Странно то, что страница индекса работает нормально, когда я ищу ее как localhost:8080/index
.
Я также попытался возвратить другую страницу из метода входа в систему, и это единственная страница индекса, сообщающая мне об ошибке.
Ниже приведены мои методы контроллеров и форма index.html
@RequestMapping(value = "/login")
@PostMapping
public ModelAndView login(@ModelAttribute("loginForm") LoginForm loginForm, ModelAndView modelAndView, BindingResult bindignResult) {
AppUser userLoggedIn = userService.findByUserNameAndEncryptedPassword(loginForm.getUsername(), loginForm.getPassword());
if (userLoggedIn == null){
modelAndView.addObject("errorLogin", "Incorrect Credentials!");
modelAndView.setViewName("signin");
}else {
modelAndView.setViewName("index");
}
return modelAndView;
}
фильтрует книги по их атрибутам
@RequestMapping(value = "/search")
@PostMapping
public ModelAndView searchBooks(@ModelAttribute ("bookDto") BookDto bookDto, Model model) {
model.addAttribute("books", bookService.listAll(searchFilterBuilder.buildFilter(bookDto)));
model.addAttribute("bookDto", bookDto);
return new ModelAndView("index");
}
и, наконец, мой в index.html
<form th:object="${bookDto}" th:action="@{/search}" method="post">