首页 > 解决方案 > 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>

标签: javaspringhibernatethymeleaf

解决方案


推荐阅读