Bean 검증의 내장 제약
@Null 주석이 달린 요소는 null이어야합니다
@NotNull 주석이 달린 요소는 무효가되어서는 안됩니다
@asserttrue 주석이 달린 요소는 사실이어야합니다
@assertfalse 주석이 달린 요소는 거짓이어야합니다
@Min (값) 주석이 달린 요소는 숫자 여야하며 그 값은 지정된 최소값보다 크거나 동일해야합니다.
@max (값) 주석이 달린 요소는 숫자 여야하며 그 값은 지정된 최대 값보다 작거나 같아야합니다.
@decimalmin (값) 주석이 달린 요소는 숫자 여야하며 그 값은 지정된 최소값보다 크거나 동일해야합니다.
@decimalMax (값) 주석이 달린 요소는 숫자 여야하며 그 값은 지정된 최대 값보다 작거나 동일해야합니다.
@Size (max =, min =) 주석이 달린 요소의 크기는 지정된 범위 내에 있어야합니다.
@digits (정수, 분수) 주석이 달린 요소는 숫자 여야하며 그 값은 허용 가능한 범위 내에 있어야합니다.
@past 주석이 달린 요소는 과거 날짜 여야합니다
@future 주석이 달린 요소는 미래 날짜 여야합니다
@pattern (regex =, flag =) 주석이 달린 요소는 지정된 정규 표현식을 준수해야합니다.
최대 절전 모드 유효성 검사기 부착 제약
@NotBlank (message =) 문자열이 널이 아니며 0보다 클 사람이 있는지 확인합니다.
@Email 주석이 달린 요소는 이메일 주소 여야합니다
@length (min =, max =) 주석이 붙은 문자열의 크기는 지정된 범위 내에 있어야합니다.
@Notempty 주석은 문자열이 비어 있지 않아야합니다
@Range (min =, max =, message =) 주석이 달린 요소는 적절한 범위 내에 있어야합니다.
효과와 장점
최종 효과를 먼저 보자.
공개 클래스 userentity {@Password 개인 문자열 비밀번호; @Email 개인 문자열 이메일;}위의 두 가지 사용자 정의 주석을 사용하여 비밀번호와 이메일을 확인합니다. 이것의 장점은 다음과 같습니다. 하나의 정의는 어디에서나 사용됩니다. 확인 규칙을 수정할 때는 주석을 수정하면됩니다. 사용자 정의하면 최대 절전 모드에서 제공 한 태그를 사용하십시오.
@pattern (regexp = "...") 개인 문자열 이메일;
많은 클래스를 작성한 후 확인 규칙 Regexp를 갑자기 수정 해야하는 경우 현재 작업량이 훨씬 커질 것입니다.
성취하다
먼저 최대 절전 모드 검증 의존성을 소개하고 다음을 추가하십시오.
<!-Hibernate Validator-> <!-Hibernate Verification Framework-> <pectionency> <groupid> org.hibernate </groupid> <artifactid> hibernate-validator </artifactid> <bersion> 5.2.2.final </version> </dependency>
최대 절전 모드 검증은 JSR의 참조 구현이므로 BEAN 검증에 사용하십시오.
검증 주석 사용자 정의는 세 단계로 나뉩니다.
첫 번째 단계는 주석을 만드는 것입니다.
@TARGET ({method, field, annotation_type, constructor, parameter})@retention (runtime)@documented@constraint (validatedby = {emailvalidator.class}) public @interface email {string message () 기본값 "이것은 유효한 이메일 형식이 아닙니다"; /** * @ @return */String regexp () 기본값 "[a-za-z0-9 ._%+-]+ @[a-za-z0-9]+//. [a-za-z] {2,4}"; class <?> [] groups () default {}; 클래스 <? payload> [] payload () default {}을 확장합니다. /*** 동일한 요소에 여러 {@link size} 주석이 정의됩니다. * * @see size */ @target ({method, field, annotation_type, constructor, parameter}) @retention (runtime) @documented @interface list {email [] value (); }} @interface 키워드를 통해 주석을 작성하면 각 방법은 주석의 매개 변수입니다. 예를 들어, 위의 코드에서는 @Email(regexp="...",message="...") 사용할 수 있습니다. 나머지를 무시하고 직접 복사 할 수 있습니다. @Constraint(validatedBy = { EmailValidator.class }) 에 주목해야합니다. 여기에서는 주석의 확인 클래스를 지정하고 실제 상황에 따라 클래스 이름을 대체합니다.
두 번째 단계는 확인 클래스를 만드는 것입니다.
public class emailvalidator는 구속 조건 Validator <이메일, 문자열> {private String regexp; @override public void initialize (email restaintannotation) {this.regexp = constraintAnnotation.regexp (); } @override public boolean isvalid (문자열 값, restaintvalidatorcontext context) {if (value == null) {return true;} if (value.matches (regexp)) {return true; } false를 반환합니다. }} 여기에서는 ConstraintValidator<Email, String> 인터페이스를 구현하고 유효성 검사기를 만듭니다. 초기화 메소드는 주석이 달린 regexp 값을 가져오고 isvalid 메소드가 확인됩니다. 정규 표현을 충족하면 true를 반환하고 그렇지 않으면 거짓을 반환합니다.
값이 비어있을 때, 즉 확인 객체가 초기화되지 않으면 해당 검증 규칙을 작성해야합니다. 그렇지 않으면 오류 가보고됩니다. 위의 코드에서 작성된 내용은 다음과 같습니다.
if (value == null) {return true;}즉, 검증 객체가 비어 있으면 성공을 반환합니다.
세 번째 단계는 기본 오류 메시지를 작성하는 것입니다. 실제로이 단계는 기본값을 통해 첫 번째 단계에서 수행 되었으므로이 단계는 수행 할 필요가 없습니다.
요약
위는이 기사의 전체 내용입니다. 이 기사의 내용에 모든 사람의 연구 나 작업에 대한 특정 참조 가치가 있기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다. Wulin.com을 지원 해주셔서 감사합니다.