java - bindingResult.hasErrors() 总是返回 false
问题描述
我在春季遇到表单验证问题。bindingResult.hasErrors() 总是返回 false。这是我的控制器的方法:
@RequestMapping(value = "/saveEmployee")
public ModelAndView saveEmployee(@ModelAttribute("employee") @Valid Employee employee, BindingResult bindingResult){
if(bindingResult.hasErrors()){
bindingResult.getAllErrors().forEach(error->{
System.out.println(error.getObjectName() + "" + error.getDefaultMessage());
});
return new ModelAndView("employeeForm","employee",employee);
}else{
try{
userService.saveUser(employee.getUser());
employeeService.addEmployee(employee);
}catch(UserAlreadyExistException userExists){
return new ModelAndView("/employeeForm","message","Account with this username/email already exists.");
}
return new ModelAndView("redirect:/employees","employees",employeeService.getAllEmployees());
}
}
这是我的带有注释的 Employee 类:
@Entity
public class Employee {
@Id
@GeneratedValue
private int id;
@NotEmpty
@NotNull
@Size(min = 3, max = 30)
private String name;
@NotEmpty
@NotNull
@Size(min = 3, max = 30)
private String surname;
@ManyToOne
private Task task;
@OneToOne
private User user;
}
我这里有带有@NotNull、@Size、@NotEmpty 等注释的变量。
在这里,我尝试使用了 Maven 依赖项:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.1.Final</version>
</dependency>
解决方案
推荐阅读
- python - 按字母顺序查找最长的子串(需要逻辑建议)
- html - 创建一个包含圆形按钮的矩形,该按钮根据矩形的大小调整大小
- java - Apache Http Client 4.5.11 生产环境配置最佳实践
- python - Python exe太慢了
- android - Android 动画正弦波曲线视图
- google-apps-script - 例外:此操作会将工作簿中的单元格数量增加到超过 5000000 个单元格的限制
- java - Jackson 反序列化一个有趣的 JSON 结构
- javascript - 读取文件组件(fs.readFile)
- c++ - 加、乘、除和减复数的问题 C++ - 运算符重载
- swift - 为什么“Set”在 Swift Playground 中的操作方式不同?