【问题标题】:@Valid annotation on selected fields only@Valid 仅在选定字段上的注释
【发布时间】:2016-02-05 14:52:12
【问题描述】:

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

@NotNull
private String name;

考虑到有很多字段,我以两种形式独立使用。问题是我的第一个表单不包含

private String name;

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

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

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

谢谢。

【问题讨论】:

    标签: spring forms validation model-view-controller


    【解决方案1】:

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

    • 为两个表单创建两个自定义类,并仅验证其中一个的名称,而不验证另一个。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      • 2022-12-01
      • 1970-01-01
      • 2019-09-03
      • 2021-09-24
      • 1970-01-01
      • 2019-05-31
      相关资源
      最近更新 更多