【发布时间】:2020-10-28 14:08:37
【问题描述】:
我正在做一个小项目。
除了验证之外一切正常。
我有一个名为 Fighter 的类,它的名称属性不应为 NULL 或 Empty。 我确实像我的教授一样在他的样本中添加了所有用于验证的内容。
但是,如果我添加一个名称为空的 Fighter,则不会捕获错误,新的 Fighter 只会保存到数据库中
我错过了什么吗?
我的战士班
@Entity
public class Fighter {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
public int id;
@NotNull
@Size(min = 2, max = 30)
public String name;
@Column(name = "path")
public String path;
}
控制器中的添加函数
@GetMapping("/join")
public String showFighterForm(Model model) {
model.addAttribute("fighter", new Fighter());
return "add-fighter";
}
@PostMapping("/addfighter")
public String addFighter(@Valid Fighter fighter, BindingResult bindingResult, Model model) {
if (bindingResult.hasErrors()) {
return "add-fighter";
}
fighter.setPath();
fighterRepository.save(fighter);
model.addAttribute("fighters", fighterRepository.findAll());
return "character";
}
也许有人可以帮我解决这个问题。
【问题讨论】:
-
你有验证器实现吗?仅仅添加
validation-api依赖是不够的,没有像hibernate-validator这样的东西不会发生任何事情。注释只是您需要处理它的元数据。
标签: java spring validation spring-mvc thymeleaf