仅对选定字段的@Valid注释

时间:2015-11-04 22:24:21

标签: spring forms validation model-view-controller

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

@NotNull
private String name;

在帐户中有很多字段,我以两种形式独立使用。问题是因为我的第一个表格不包含

private String name;

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

基本上,验证将始终失败,因为变量属于同一个类但未以此特定形式使用。

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

谢谢。

1 个答案:

答案 0 :(得分:0)

我认为在进行验证注释时,您可能无法克服此类问题。但你可以试试这些:

  • 为两个表单创建两个自定义类,并为其中一个表单验证名称,而不对其他表单进行验证。

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

    @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
        }
    }