검증 프레임워크 사용 예


### ## ## #####샘플 코드 :##### ####
@Validation(mode = Validation.MODE.FULL)
public class UserBase {

    @VRequried(msg = "{0}不能为空")
    @VLength(min = 3, max = 16, msg = "{0}长度必须在3到16之间")
    @VField(label = "用户名称")
    private String username;

    @VRequried
    @VLength(max = 32)
    private String password;

    @VRequried
    @VCompare(cond = VCompare.Cond.EQ, with = "password")
    private String repassword;

    @VModel
    @VField(name = "ext")
    private UserExt userExt;

    //
    // 此处省略了Get/Set方法
    //
}

public class UserExt {

    @VLength(max = 10)
    private String sex;

    @VRequried
    @VNumeric(min = 18, max = 30)
    private int age;

    @VRequried
    @VEmail
    private String email;

    //
    // 此处省略了Get/Set方法
    //
}

public static void main(String[] args) throws Exception {
    YMP.get().init();
    try {
        Map<String, Object> _params = new HashMap<String, Object>();
        _params.put("username", "lz");
        _params.put("password", 1233);
        _params.put("repassword", "12333");
        _params.put("ext.age", "17");
        _params.put("ext.email", "@163.com");

        Map<String, ValidateResult> _results = Validations.get().validate(UserBase.class, _params);
        //
        for (Map.Entry<String, ValidateResult> _entry : _results.entrySet()) {
            System.out.println(_entry.getValue().getMsg());
        }
    } finally {
        YMP.get().destroy();
    }
}
#🎜🎜 ## ## ## ## ## 🎜 🎜#실행 결과:
  • username : 用户名称长度必须在3到16之间
    repassword : repassword must be eq password.
    ext.age : ext.age numeric must be between 30 and 18.
    ext.email : ext.email not a valid email address.

    함수 주석 설명:
  • @Validation: 검증 모드 구성, 기본값은 NORMAL입니다.
    NORMAL - 단락 검증입니다. 확인에 실패하면 확인 결과가 반환됩니다.
  • FULL - 대상 객체 속성을 모두 확인한 후 모든 확인 결과가 반환됩니다.
#🎜🎜 #@VField: 확인할 멤버 또는 메서드 매개 변수 이름을 사용자 지정합니다.

name: 중첩된 경우 매개 변수 이름을 사용자 지정합니다. 확인 시 상위 및 하위 매개변수는 '.'으로 구분됩니다.
  • label: @VField를 중첩하여 사용하면 해당 기능을 사용할 수 없습니다. #

    @Validation:验证模式配置,默认为NORMAL;

    • NORMAL - 短路式验证,即出现验证未通过就返回验证结果;
    • FULL - 对目标对象属性进行全部验证后返回全部验证结果;
  • @VField:自定义待验证的成员或方法参数名称;

    • name:自定义参数名称,在嵌套验证时上下层参数以'.'分隔;
    • label:自定义参数标签名称,若@VField嵌套使用时功能将不可用;
  • @VModel# 🎜🎜#@VModel: 대상 개체가 JavaBean 개체인지 선언하고 개체 중첩 확인이 수행됩니다.

  • # 🎜🎜#
#🎜 🎜#