@Valid注解,对象验证的顺序如何控制

public class Person {
    @NotBlank(message = "手机号码不能为空")
    private String phone;
    @NotBlank(message = "密码不能为空")
    private String password;
}

Controller:

public JsonResult add(@Valid Person person, BindingResult bindingResult) {
    // 遍历bindingResult.getAllErrors(),会存在随机的校验结果
    // 比如:情况一、密码不能为空,手机号码不能为空;情况二、手机号码不能为空,密码不能为空;
    // 那程序中该如何确保校验的顺序与对象中顺序一致?
}
阅读 7k
2 个回答

1、要么自己手动验证,可控性大点
2、spring用的是hibernate-validator,他支持一种叫做分组的方式,但是改动有点多,不优雅。
可以看下链接描述

你可以自己排序,用bindingResult.getFieldErrors遍历,或者用bindingResult.getAllErrors()然后转换为FieldError(如果能转的话),然后自己按照field排序。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题