Alice52 / spring-5.2.x

spring source code
https://github.com/Alice52/spring-5.2.x/issues/2
0 stars 1 forks source link

[spring] validation #24

Closed Alice52 closed 2 years ago

Alice52 commented 2 years ago

validator

  1. controller: @Valid 标识级联和递归
    • 直接使用 List<@Email> 这种是无效的: 必须使用 @Validated {手动调用默认就是会生效的}
    • 直接使用 @Email 这种是有效的
    • 但是如果是 @Valid SubjectVO 里面有List字段: 则可以写 List<@Valid BDTO>
    • 对象嵌套必须使用 @Valid: private @Valid PkPaperDTO paperDTO;
  2. 也可以在 xxService 的接口上写 @Validated
  3. spring 手动调用 Validator.validate 得到结果可以构建 ConstraintViolationException 类
  4. 类级别的校验
    // 1. js 脚本: 顺序和 spring 的校验是不可控的
    @ScriptAssert(
        lang = "javascript",
        alias = "_",
        script = "_.prototypeDTO.type != 1 || _.subjects != null",
        message = "固定试卷题目不能为空")
    // 2. 自定义类级别的注解
    // 3. DefaultGroupSequenceProvider

reference

  1. link-conlusion
  2. https://github.com/Alice52/project/issues/24