@仅对选定字段进行有效注释



我有一个帐户类,在其中我使用如下符号:

@NotNull
private String name;

在account中有许多字段,我分别以两种形式使用它们。问题是,由于我的第一张表格不包含

private String name;

当我提交表单时,验证检查失败,因为正在检查实际表单中没有的字段。

从本质上讲,验证总是会失败,因为变量在同一个类中,但没有以这种特定的形式使用

为了解决这个问题,我必须使用Spring Validator类吗?

谢谢。

我认为在使用验证注释时可能无法解决此类问题。但你可以试试这些:

  • 为两个窗体创建两个自定义类,只为其中一个窗体验证名称,而不对另一个窗体进行验证。

  • 此外,您还可以尝试在控制器方法中手动验证您自己的字段。Autowire验证器类,并在方法内部进行验证。

    @Autowired
    Validator validator;
    public methodA(Model model, @ModelAttribute("modelA") ModelA modelA, BindingResult result){
        validator.validate(modelA, result);
        if (result.hasErrors()){
          // do something
        }
        else {
          // do something else
        }
    }
    

最新更新