SpringMVC는 데이터 검증을 지원하며 JSR303 표준이며 Bean의 속성에 @notnull, @Max 등을 입력하여 확인됩니다. JSR303은 많은 주석 인터페이스를 제공하며 SpringMVC는 이러한 확인에 최대 절전 모드를 사용하므로 최대 절전 모드를위한 유효성 검사기 패키지를 추가해야합니다.
인용에 의존합니다
'javax.validation : validation-api : 2.0.0.final'compile 'org.hibernate : hibernate-validator : 6.0.0.final'을 컴파일합니다.
프레임 워크는 다음과 같이 확인을 제공했습니다.
JSR에서 제공 한 주석을 확인하십시오.
@Null 주석이 달린 요소는 null이어야합니다
@NotNull 주석이 달린 요소는 무효가되어서는 안되며 널가 될 수 없으며 "" "" "" ""
@asserttrue 주석이 달린 요소는 사실이어야합니다
@assertfalse 주석이 달린 요소는 거짓이어야합니다
@Min (값) 주석이 달린 요소는 숫자 여야하며 그 값은 지정된 최소값보다 크거나 동일해야합니다.
@max (값) 주석이 달린 요소는 숫자 여야하며 그 값은 지정된 최대 값보다 작거나 같아야합니다.
@decimalmin (값) 주석이 달린 요소는 숫자 여야하며 그 값은 지정된 최소값보다 크거나 동일해야합니다.
@decimalMax (값) 주석이 달린 요소는 숫자 여야하며 그 값은 지정된 최대 값보다 작거나 동일해야합니다.
@Size (max =, min =) 객체의 길이 (배열, 수집,지도, 문자열)가 주어진 범위 내에 있는지 확인합니다.
@digits (정수, 분수) 주석이 달린 요소는 숫자 여야하며 그 값은 허용 가능한 범위 내에 있어야합니다.
@past 주석이 달린 요소는 과거 날짜 여야합니다
@future 주석이 달린 요소는 미래 날짜 여야합니다
@pattern (regex =, flag =) 주석이 달린 요소는 지정된 정규 표현식을 준수해야합니다.
Hibernate Validator가 제공 한 주석을 확인하십시오.
@NotBlank (Message =)는 널이 아닌 문자열에서만 사용할 수 있으며 Trim ()을 호출 한 후 길이는 0보다 클 필요입니다.
@Email 주석이 달린 요소는 이메일 주소 여야합니다
@length (min =, max =) 주석이 붙은 문자열의 크기는 지정된 범위 내에 있어야합니다.
@NotEmpty 주석은 문자열이 비어 있지 않아야하고, null이 될 수 없어야합니다. "" ", be" "
@Range (min =, max =, message =) 주석이 달린 요소는 적절한 범위 내에 있어야합니다.
예제 데모
확인 해야하는 엔티티 클래스를 만듭니다.
package com.yiba.wifi.news.bean.model; import org.hibernate.validator.constraints.length; import javax.validation.constraints.*; public class us {@notblank (@notblank (message name은 0보다 클 수 없어야한다”) 문자열 이름; // 사용자 이름 @min (value = 1, message = "최소 연령은 1 세") @max (value = 120, message = "최대 연령은 120") 정수 연령; // age @email (message = "emailbox 형식 오류") @notblank (message = "emailbox 형식 오류") 문자열 이메일; // email @length (min = 6, max = 12, messag이메일을 확인할 때 이메일이 ""또는 null 일 때 @email 확인을 전달하므로 이메일 확인에는 @email 및 @notblank가 함께 작동해야합니다.
컨트롤러 인터페이스 디자인, 매개 변수가 허용되는 @validated 키워드 추가
/ *** 로그인 인터페이스* @return*/ @postmapping ( "로그인") 공개 문자열 로그인 (@validated @requestbody user user) {return "ok"; }액세스 테스트 :
액세스 할 때 데이터가 다음 형식입니다
{ "name": "", "age": 0, "email": "", "pwd": ""}응답은 다음과 같습니다.
{ "timestamp": 1524640724522, "상태": 400, "오류": "잘못된 요청", "예외": "org.springframework.web.bind.methodargumentnotvalidexception", "오류": [ "코드": [ "notblank.user.mail", ",", "메일" "notblank.java.lang.string", "notblank"], "arguments": [{ "codes": [ "user.email", "hame"], "arguments": "null": "defaultMessage": "이메일", "Code": "이메일"}], "defaultMessage": "객체 포맷 오류", "user", "", "" "" "" "" "" "" "" "" "" "" "RejectedValue": "", "bindingfailure": false, "code": "notblank"}, { "codes": [ "notblank.user.name", "notblank.name", "notblank.java.lang.string", "notblank"], "Arture": "" "" "" "" "" "" "" "" "" "" "" "] null, "defaultMessage": "name", "code": "name"}], "defaultMessage": "사용자 이름은 null", "objectname": "객체 이름": "user", "field": "name": "bindingfailure": "code", "code", "코드": "코드": "longth.user.pwd", "longth.pwd", "longth.java.lang.string", "length"], "arguments": [{ "codes": [ "user.pwd", "pwd"], "Arguments": null, "defaultmessage": "pwd", "pwd", "},"}, ",", ",", "," 6 ~ 12 비트 ","ObjectName ","ObjectName ","Field ":"PWD ","PWD ","RejectedValue ":" ","BindingFailure ": False,"Code ":"Length "}, {"Codes ":"min.user.age ","min.age ","min.java.lang.integer ":" "" "user.age", "age"], "arguments": null, "defaultMessage": "Age", "Code": "Age"}, 1], "DefaultMessage": "최소 연령은 1 세입니다", "ObjectName": "user", "age", "거부": 0, "" "" "", "" "" "": "" ":" "" ":" "": "" ":" "": ""in " "Object = 'User'에 대한 유효성 검사 실패. 오류 수 : 4", "경로": "/yiba/sms/login"}로컬 요청이 4 개의 필드를 확인하지 못했음을 알 수 있습니다. 예외 정보를 얻을 수있는 방법이 있습니까? 대답은 예이며 컨트롤러 인터페이스를 수정해야합니다.
/** * 로그인 인터페이스 * * @return */@postmapping ( "로그인") 공개 문자열 로그인 (@Validated @RequestBody 사용자 사용자, bindingResult bindingResult) {if (bindingResult.haserRors ()) {// <sbjecterror> erorlistrors (vindingResult.geterList)가 실패하는 점검이 있습니다. for (objecterror error : errorlist) {system.out.println (error.getDefaultMessage ()); // 출력 특정 오류 메시지} return "매개 변수 예외"; } "OK"를 반환합니다. }다시 요청 형식은 다음과 같습니다
{ "name": "", "age": 0, "email": "", "pwd": ""}응답은 다음과 같습니다
매개 변수 예외
콘솔에 인쇄 된 정보는 다음과 같습니다.
사용자 이름은 null이 될 수없고 길이는 0보다 크기가 높아야합니다.
비밀번호 길이는 6 자리에서 12 자리 사이 여야합니다. 최소 연령은 1 세 이메일 형식 오류입니다.
검증 정보를 정상적으로 얻었음을 알 수 있습니다.
참조 올바른 액세스를하겠습니다.
요청 매개 변수는 다음과 같습니다.
{ "이름": "Zhaoyanjun", "Age": 1, "이메일": "[email protected]", "pwd": "123456"}응답은 다음과 같습니다.
좋아요
콘솔은 아무것도 출력하지 않습니다.
요약
위는 편집기가 소개 한 스프링 요청 매개 변수 검증 함수의 예제입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!