시리즈 (4) 및 (5)에서, 우리는 데이터를 바인딩하는 방법과 데이터를 바인딩 한 후 얻는 데이터의 정확성을 보장하는 방법을 보여줍니다. 이것이 우리 가이 기사에서 이야기 할 내용입니다 -> 데이터 확인.
여기서 우리는 검증을 위해 최대 절전 모드 검증기를 사용합니다. Hibernate-Validator는 주석 스타일 검증을 지원하기 위해 JSR-303 검증 프레임 워크를 구현합니다. 먼저 http://hibernate.org/validator/에서 필요한 JAR 패키지를 다운로드해야합니다. 여기서 우리는 4.3.1.final을 데모로 사용합니다. 감압 후, 3 개의 패키지 최대 절전 모드-밸리 디터 -4.3.1.final.jar, jboss-logging-3.1.0.jar, validation-api-1.0.0.ga.jar를 프로젝트에 추가하십시오.
다음과 같이 이전 프로젝트에서 Springservlet-config.xml 파일을 구성하십시오.
<!-기본 주석 매핑 지원-> <MVC : 주석 구동 유효성 검증기 = "Validator"Conversion-Service = "Conversion-Service" /> <bean id = "validator"> <property name = "providerClass"value = "org.hibernate.validator.hibernatevalidator"-claseptor inter inter inter exporates. -> <property name = "validateMessageSource"ref = "validAmessagesOURCE"/> </bean> <bean id = "conversion-service"/<bean id = "validAmessagesOUrce"> <속성 이름 = "valueName"value "="classPath : validAmessages "/> <property name ="value ""utf-8 ""utf-8 ". 값 = "120"/> </bean>
ClassPath : <property name = "baseName"value = "classPath : validAtemessages"의 ValidAmessages는 주석 확인 메시지가있는 파일이며 리소스 폴더에 추가해야합니다.
com.demo.web.controllers 패키지에 다음과 같이 ValideController.java 컨텐츠를 추가하십시오.
pack org.springframework.web.bind.annotation.modelattribute; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestMethod; import com.demo.web.models.validatemel;@@ructeder " "/validate") public class validAteController {@requestMapping (value = "/test", method = {requestmethod.get}) public String test (model model) {if (! model.containsAttribute ( "contentModel")) {model.addattribute ( "ContentModel", New ValidAmoModel (); } return "validateTest"; } @requestmapping (value = "/test", method = {requestmethod.post}) public String test (모델 모델, @valid @ModelAttribute ( "contentModel") ValidAMODEL, bindingResult result) nosuchalGorithMexception을 눌렀습니다. 테스트 (모델); "validatesUccess"를 반환합니다. }}@Valid @ModelAttribute ( "ContentModel") VALAMATEMODEL VALAMATEMODEL @VALID는 데이터를 @ModelAttRibute ( "ContentModel")에 바인딩 한 후 확인합니다.
com.demo.web.models 패키지에 다음과 같이 ValidAtemodel.java 컨텐츠를 추가하십시오.
package com.demo.web.models;import org.hibernate.validator.constraints.Email;import org.hibernate.validator.constraints.NotEmpty;import org.hibernate.validator.constraints.Range;public class ValidateModel{ @NotEmpty(message="{name.not.empty}") private String name; @Range (min = 0, max = 150, message = "{age.not.inrange}") 개인 문자열 연령; @notempty (message = "{email.not.empty}") @email (message = "{email.not.correct}") 개인 문자열 이메일; public void setName (문자열 이름) {this.name = 이름; } public void setage (String Age) {this.age = age; } public void seteMail (문자열 이메일) {this.email = 이메일; } public String getName () {return this.name; } public String getage () {return this.age; } public String getEmail () {return this.email; }}주석 확인 메시지가있는 파일에 다음 내용을 추가하십시오. ValidAmessages.Properties 파일 :
name.not.empty =/u540d/u79f0/u4e0d/u80fd/u4e3a/u7a7a/u3002age.inrange =/u5e74/u9f84/u8d85 /u51fa/u8303/u56f4/u3002email.not.correct=/u90ae/u7bb1/u5730/u5740/u4e0d/u6b63/u786e/u3002em ail.not.empty =/u7535/u5b50/u90ae/u4e0d/u80fd/u60df/u6050/u3002email.not =/u7535/u5b50/u 90ae/u4e0d/u80fd/u6050/u3002email.not =/u7535/u5b50/u90ae/u4e0d/u80fd/u60df/u6050/u3002
그 중에서, name.not.empty 등은 validatemodel.java 파일의 message = "xxx"의 xxx 이름에 해당합니다. 다음 내용은 중국어로 자동 변환되는 ASCII 인코딩에 입력됩니다. 물론 다른 validAmessages.properties 파일을 작성하고 추가하지 않고 XXX를 프롬프트 컨텐츠로 직접 쓸 수도 있습니다. 그러나 하드 코드가 있으면 국제화 할 수 없기 때문에 이것은 틀 렸습니다.
보기 폴더에서 validateTest.jsp 및 validateSuccess.jsp에 각각 두 개의 뷰를 추가하십시오.
<%@ page language = "java"contmenttype = "text/html; charset = utf-8"pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtml 4.01 transitional // en" "http://www.w.3.org/tr/tr/Tml 4/Thtml 4/Thtml 4/Thtml 4/tr. taglib prefix = "form"uri = "http://www.springframework.org/tags/form" %> <html> <head> <meta http-equiv = "content-type"content = "text/html; charset = utf-8"> <sert> 제목 </title> </head> </worm> </title> </worm. ModelAttribute = "ContentModel"Method = "Post"> <form : 오류 경로 = "*"> </form : errors> <br/> 이름 : <form : 입력 경로 = "이름"/> <br/> <양식 : 오류 경로 = "이름"> </form : errors> <br/ <br/ : input path = "age"/>> <bror : errors : errors path = "age"> </form : errors> <br/> 이메일 : <form : 입력 경로 = "age"> </form : errors> <br/> path = "email"/> <br/> <양식 : 오류 경로 = "이메일"> </form : errors> <br/> input type = "value ="제출 "/> form : form> </html> </html>
<%@ page language = "java"contmenttype = "text/html; charset = utf-8"pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtml 4.01 Transitional // en" "http://www.w3.org/tr/tr/html4/loose.dtd"> html> html> http-quiv ="content-type "content ="text/html; charset = utf-8 "> <title> 제목 </title> </head> <bod> <bod> verfyfication이 성공적입니다! </body> </html>
validateTest.jsp보기의 modelAttribute = "xxx"이후 xxx라는 이름은 해당 @Valid @ModelAttRibute ( "XXX")의 이름과 일치해야한다는 점을 지적하는 것이 특히 중요합니다. 그렇지 않으면 모델 데이터와 오류 정보가 바인딩되지 않습니다.
<양식 : 오류 경로 = "이름"> </form : errors>에 모델의 해당 속성에 대한 오류 정보가 표시됩니다. Path = "*"인 경우 모델의 모든 속성에 대한 오류 정보가 표시됩니다.
시험 실행 :
직접 제출하려면 클릭하십시오.
설정이 올바르게 표시되는 오류 메시지를 볼 수 있습니다.
제출할 잘못된 데이터를 채우십시오.
여전히 올바르게 표시된 오류 메시지가 표시됩니다.
제출할 올바른 데이터를 작성하십시오.
확인이 성공적이라는 것을 알 수 있습니다.
다음은 주요 검증 노트 및 지침입니다.
데이터 확인 컨텐츠는 여기에서 종료되고 코드 다운로드 : 데모
자세한 내용은 공식 문서를 참조하십시오 : http://docs.jboss.org/hibernate/validator/4.3/reference/en-us/html/validator-usingvalidator.html
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.