如何将javax.validation与Thymeleaf一起使用
当我运行此程序时,如果有效,它将创建一本新书,但一旦出现错误,它将不会发回页面,我将得到400:如何将javax.validation与Thymeleaf一起使用,validation,thymeleaf,Validation,Thymeleaf,当我运行此程序时,如果有效,它将创建一本新书,但一旦出现错误,它将不会发回页面,我将得到400: This application has no explicit mapping for /error, so you are seeing this as a fallback. There was an unexpected error (type=Bad Request, status=400). Validation failed for object='book'. Error cou
This application has no explicit mapping for /error, so you are seeing this as a fallback.
There was an unexpected error (type=Bad Request, status=400).
Validation failed for object='book'. Error count: 4
我用system outs进行了测试,如果它有错误,它永远不会提交,我想也许@Valid是错误的,或者???
这是我的控制器。。。请告诉我少了什么
@Controller
@RequestMapping("/")
public class BookController{
@RequestMapping(method=RequestMethod.GET)
public String home(Model model) {
refData = new ReferenceData();
model.addAttribute("refData", refData);
model.addAttribute("book", new Book());
List<Book> books = BookRepo.findAll();
model.addAttribute("books", books);
return "home";
}
@RequestMapping(method=RequestMethod.POST)
public String submit(@Valid Book book,Model model, BindingResult bindingResult) {
refData = new ReferenceData();
model.addAttribute("refData", refData);
if (bindingResult.hasErrors()) {
return "home";
}
BookRepo.save(book);
return "redirect:/";
}
我发现我必须将bindingResult直接放在@Valid Book实体之后,因此
@RequestMapping(method=RequestMethod.POST)
public String submit(@Valid Book book,**BindingResult bindingResult**, Model model ) {
refData = new ReferenceData();
model.addAttribute("refData", refData);
if (bindingResult.hasErrors()) {
return "home";
}
BookRepo.save(book);
return "redirect:/";
}
哇,多小的错误啊
约翰尼O
@Entity
public final class Book
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@NotNull
@Pattern(regexp="^[a-zA-Z0-9_]+$")
private String title;
@NotNull
@Pattern(regexp="^[a-zA-Z0-9_]+$")
private String author;
@NotNull
@Pattern(regexp="^[a-zA-Z0-9_]+$")
private String genre;
@NotNull
@Digits(message="message here", integer=32767, fraction = 0)
private Integer pages;
private String year;
private String rating;
@RequestMapping(method=RequestMethod.POST)
public String submit(@Valid Book book,**BindingResult bindingResult**, Model model ) {
refData = new ReferenceData();
model.addAttribute("refData", refData);
if (bindingResult.hasErrors()) {
return "home";
}
BookRepo.save(book);
return "redirect:/";
}