시리즈 (SpringMVC 학습 시리즈(6) 데이터 검증)와 (SpringMVC 학습 시리즈(6) 데이터 검증)에서는 데이터를 바인딩하는 방법을 보여줬고, 얻은 데이터의 정확성을 어떻게 보장할 수 있나요? 이번 글에서 다룰 내용은 바로 이것이다 —> 데이터 검증입니다.
여기서는 검증을 위해 Hibernate-validator를 사용합니다. Hibernate-validator는 JSR-SpringMVC 학습 시리즈(6) 데이터 검증0SpringMVC 학습 시리즈(6) 데이터 검증 검증 프레임워크를 구현하고 주석 스타일 검증을 지원합니다. 먼저 http://www.php.cn/으로 이동하여 필요한 jar 패키지를 다운로드해야 합니다. 여기에서는 압축 해제 후 데모로 hibernate-validator-SpringMVC 학습 시리즈(6) 데이터 검증.SpringMVC 학습 시리즈(6) 데이터 검증.SpringMVC 학습 시리즈(6) 데이터 검증.Final.jar을 사용합니다. jboss-logging-SpringMVC 학습 시리즈(6) 데이터 검증.SpringMVC 학습 시리즈(6) 데이터 검증 SpringMVC 학습 시리즈(6) 데이터 검증개의 패키지 .0.jar 및 유효성 검사-api-SpringMVC 학습 시리즈(6) 데이터 검증.0.0.GA.jar이 프로젝트에 추가되었습니다.
이전 프로젝트에서 springservlet-config.xml 파일을 다음과 같이 구성합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <!-- 默认的注解映射的支持 -->
<annotation-driven></annotation-driven>
<bean>
<property></property>
<!--不设置则默认为classpath下的 ValidationMessages.properties -->
<property></property>
</bean>
<bean></bean>
<bean>
<property></property>
<property></property>
<property></property>
</bean>
|
로그인 후 복사
여기서 속성 이름="basename" 값="classpath:validatemessages"/> 🎜>classpath:validatemessages는 주석 확인 메시지가 있는 파일이므로 리소스 폴더에 추가해야 합니다.
com.demo.web.controllers 패키지에 다음 콘텐츠가 포함된 ValidateController.java를 추가합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | package com.demo.web.controllers; import java.security.NoSuchAlgorithmException; import javax.validation.Valid; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import 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.ValidateModel;
@Controller
@RequestMapping (value = "/validate" ) public class ValidateController {
@RequestMapping (value= "/test" , method = {RequestMethod.GET}) public String test(Model model){ if (!model.containsAttribute( "contentModel" )){
model.addAttribute( "contentModel" , new ValidateModel());
} return "validatetest" ;
}
@RequestMapping (value= "/test" , method = {RequestMethod.POST}) public String test(Model model, @Valid @ModelAttribute ( "contentModel" ) ValidateModel validateModel, BindingResult result) throws NoSuchAlgorithmException{
if (result.hasErrors()) return test(model); return "validatesuccess" ;
}
}
|
로그인 후 복사
그 중 @Valid @ModelAttribute("contentModel") ValidateModel verifyModel의 @Valid는 @ModelAttribute("contentModel")에 데이터를 바인딩한 후 유효성을 검사한다는 의미입니다.
com.demo.web.models 패키지에 다음 콘텐츠가 포함된 ValidateModel.java를 추가합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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=SpringMVC 학습 시리즈( 6 ) 데이터 검증SpringMVC 학습 시리즈( 6 ) 데이터 검증 0 ,message= "{age.not.inrange}" ) private String age;
@NotEmpty (message= "{email.not.empty}" )
@Email (message= "{email.not.correct}" ) private String email;
public void setName(String name){ this .name=name;
} public void setAge(String age){ this .age=age;
} public void setEmail(String email){ this .email=email;
}
public String getName(){ return this .name;
} public String getAge(){ return this .age;
} public String getEmail(){ return this .email;
}
}
|
로그인 후 복사
확인 메시지가 있는 파일에 주석을 답니다. 속성 파일에 다음 내용을 추가합니다:
1 2 3 4 | name.not.empty=\uSpringMVC 학습 시리즈( 6 ) 데이터 검증SpringMVC 학습 시리즈( 6 ) 데이터 검증0D\u79F0\uSpringMVC 학습 시리즈( 6 ) 데이터 검증E0D\u80FD\uSpringMVC 학습 시리즈( 6 ) 데이터 검증ESpringMVC 학습 시리즈( 6 ) 데이터 검증A\u7A7A\uSpringMVC 학습 시리즈( 6 ) 데이터 검증00SpringMVC 학습 시리즈( 6 ) 데이터 검증
age.not.inrange=\uSpringMVC 학습 시리즈( 6 ) 데이터 검증E7SpringMVC 학습 시리즈( 6 ) 데이터 검증\u9F8SpringMVC 학습 시리즈( 6 ) 데이터 검증\u8D8SpringMVC 학습 시리즈( 6 ) 데이터 검증\uSpringMVC 학습 시리즈( 6 ) 데이터 검증SpringMVC 학습 시리즈( 6 ) 데이터 검증FA\u8SpringMVC 학습 시리즈( 6 ) 데이터 검증0SpringMVC 학습 시리즈( 6 ) 데이터 검증\uSpringMVC 학습 시리즈( 6 ) 데이터 검증6FSpringMVC 학습 시리즈( 6 ) 데이터 검증\uSpringMVC 학습 시리즈( 6 ) 데이터 검증00SpringMVC 학습 시리즈( 6 ) 데이터 검증
email.not.correct=\u90AE\u7BBSpringMVC 학습 시리즈( 6 ) 데이터 검증\uSpringMVC 학습 시리즈( 6 ) 데이터 검증7SpringMVC 학습 시리즈( 6 ) 데이터 검증 0 \uSpringMVC 학습 시리즈( 6 ) 데이터 검증7SpringMVC 학습 시리즈( 6 ) 데이터 검증 0 \uSpringMVC 학습 시리즈( 6 ) 데이터 검증E0D\u6B6SpringMVC 학습 시리즈( 6 ) 데이터 검증\u786E\uSpringMVC 학습 시리즈( 6 ) 데이터 검증00SpringMVC 학습 시리즈( 6 ) 데이터 검증
email.not.empty=\u7SpringMVC 학습 시리즈( 6 ) 데이터 검증SpringMVC 학습 시리즈( 6 ) 데이터 검증SpringMVC 학습 시리즈( 6 ) 데이터 검증\uSpringMVC 학습 시리즈( 6 ) 데이터 검증BSpringMVC 학습 시리즈( 6 ) 데이터 검증 0 \u90AE\uSpringMVC 학습 시리즈( 6 ) 데이터 검증EF6\uSpringMVC 학습 시리즈( 6 ) 데이터 검증E0D\u80FD\u60DF\u60SpringMVC 학습 시리즈( 6 ) 데이터 검증 0 \uSpringMVC 학습 시리즈( 6 ) 데이터 검증00SpringMVC 학습 시리즈( 6 ) 데이터 검증
|
로그인 후 복사
그 중 name.not.empty 등은 각각 메시지의 xxx 이름에 해당합니다. ValidateModel.java 파일에 ="xxx"이고 다음 내용은 중국어 입력시 자동으로 변환되는 ASCII 코드입니다. 물론, 별도의 verifymessages.properties 파일을 생성하고 추가하지 않고도 프롬프트 내용으로 직접 xxx를 쓸 수도 있습니다. 그러나 이는 하드 코딩된 경우 메소드가 국제화되었기 때문에 올바르지 않습니다.
views 폴더에 두 개의 뷰(validatetest.jsp 및 verifysuccess.jsp)를 추가합니다. 내용은 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | nbsp;html PUBLIC "-//WSpringMVC 학습 시리즈(6) 데이터 검증C//DTD HTML SpringMVC 학습 시리즈(6) 데이터 검증.0SpringMVC 학습 시리즈(6) 데이터 검증 Transitional//EN" "http://www.wSpringMVC 학습 시리즈(6) 데이터 검증.org/TR/htmlSpringMVC 학습 시리즈(6) 데이터 검증/loose.dtd" ><meta><title>Insert title here</title>
<form>
<errors></errors><br><br>
name:<input><br>
<errors></errors><br>
age:<input><br>
<errors></errors><br>
email:<input><br>
<errors></errors><br>
<input>
</form>
|
로그인 후 복사
1 2 | nbsp;html PUBLIC "-//WSpringMVC 학습 시리즈(6) 데이터 검증C//DTD HTML SpringMVC 학습 시리즈(6) 데이터 검증.0SpringMVC 학습 시리즈(6) 데이터 검증 Transitional//EN" "http://www.wSpringMVC 학습 시리즈(6) 데이터 검증.org/TR/htmlSpringMVC 학습 시리즈(6) 데이터 검증/loose.dtd" ><meta><title>Insert title here</title>
验证成功!
|
로그인 후 복사
특히 주목할 점은
form:form modelAttribute="contentModel" 메소드="post">의 modelAttribute="xxx"해당 @Valid 뒤에 오는 이름 xxx
@ModelAttribute("xxx") xxx 이름은 일관됩니다. 그렇지 않으면 모델 데이터와 오류 정보가 바인딩되지 않습니다.
양식:오류 경로="이름">form:errors>는 모델의 해당 속성에 대한 오류 정보를 표시합니다. path="*"인 경우 표시됩니다. 모델의 모든 속성.
테스트 실행:
%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D9SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D/SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D8088ec6f6f9b0baSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D9cSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DfSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D70SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D767aSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D-SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D0.jpg)
제출을 직접 클릭하세요:
%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D9SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D/SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D8088ec6f6f9b0baSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D9cSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DfSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D70SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D767aSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D-SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D.jpg)
확인하려면 설정에 대한 오류 메시지가 올바르게 표시됩니다.
잘못된 데이터 제출:
%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D9SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D/SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D0bbSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9Dad8fdbSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D90eSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D6aSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DbeSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D88SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D0-SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D.jpg)
설정된 오류 메시지가 여전히 올바르게 표시되는 것을 확인할 수 있습니다.
올바른 데이터를 입력하고 제출하세요.
%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D9SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D/SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D0bbSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9Dad8fdbSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D90eSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D6aSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DbeSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D88SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D0-SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D.jpg)
%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D9SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D/SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D0bbSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9Dad8fdbSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D90eSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D6aSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DbeSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D88SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D0-SpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9DSpringMVC%20%ED%95%99%EC%8A%B5%20%EC%8B%9C%EB%A6%AC%EC%A6%88(6)%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B2%80%EC%A6%9D.jpg)
인증이 성공한 것을 확인할 수 있습니다.
다음은 주요 확인 참고 사항 및 지침입니다.
@Digits(정수=정수, 분수=소수)주석의 요소 값을 확인하세요. 정수 및 소수 자릿수@Future주석의 요소 값(날짜 유형)이 현재 시간보다 이후인지 확인@Max(value=x)주석이 추가된 요소 값이 @Max@Min(값=x)
참고 사항 |
해당 데이터 유형 |
설명 |
@AssertFalse |
부울, 부울 |
확인 주석의 요소 값이 false입니다 |
@AssertTrue |
Boolean, boolean |
주석의 요소 값이 true인지 확인 |
@DecimalMax(값=x) |
BigDecimal, BigInteger, String, byte, short, int , long 및 기본 유형의 해당 래퍼. HV에서 추가로 지원: Number 및 CharSequence의 모든 하위 유형 |
@DecimalMin(value=x) |
BigDecimal, BigInteger, String, byte,short, int, long 및 기본 유형의 해당 래퍼: Number 및 CharSequence의 모든 하위 유형이 추가로 지원됩니다. 🎜> | |
BigDecimal, BigInteger, 문자열, 바이트, short, int, long 및 기본 유형의 해당 래퍼. HV에서 추가로 지원: Number 및 CharSequence의 모든 하위 유형
|
| |
java.util .Date , java.util.Calendar; Joda Time 날짜/시간 API가 다음과 같은 경우 HV에서 추가로 지원됩니다.
클래스 경로: ReadablePartial 및ReadableInstant의 모든 구현
|
| |
BigDecimal, BigInteger, byte, short,int, long 및 기본 유형의 해당 래퍼 . HV에서 추가로 지원됨: 모든 하위 유형 ofCharSequence(문자 시퀀스로 표시되는 숫자 값)
평가됨), Number의 모든 하위 유형.
|
에서 지정한 값보다 작거나 같은지 확인하세요. | |
BigDecimal, BigInteger, byte, short,int, long 및 기본 유형의 해당 래퍼. HV에서 추가로 지원: CharSequence의 모든 하위 유형(char 시퀀스로 표시되는 숫자 값은 다음과 같습니다.
평가됨), Number의 모든 하위 유형. |
주석의 요소 값이 @Min |
@NotNull |
모든 유형
|
다음 요소 값이 주석이 null이 아닙니다 |
@Null |
모든 유형
|
주석이 달린 요소 유효성 검사 값이 null입니다
|
@Past | java.util.Date, java.util .Calendar; Joda Time 날짜/시간 API가 다음과 같은 경우 HV에서 추가로 지원됩니다.
클래스 경로: ReadablePartial 및ReadableInstant의 모든 구현.
|
주석의 요소 값(날짜 유형)이 현재 시간보다 이전인지 확인
|
@Pattern(regex=regular 표현식, 플래그=) |
문자열. HV에서 추가로 지원: CharSequence의 모든 하위 유형.
|
주석이 달린 요소 값이 지정된 정규 표현식과 일치하는지 확인
|
@Size(min=최소값 , max=최대값) |
문자열, 컬렉션, 맵 및 배열. HV에서 추가로 지원: CharSequence의 모든 하위 유형.
| 주석의 요소 값이 문자 길이, 모음 크기 등 지정된 최소 및 최대 범위(포함) 내에 있는지 확인
|
@Valid |
모든 비원시 유형(참조 유형)
|
주문 객체와 같은 관련 객체 확인 계정 개체에서 주문 확인 개체
|
@NotEmpty |
를 지정합니다. ,CharSequence , Collection Map and Arrays |
주석의 요소 값이 null이 아니고 비어 있지 않은지 확인하세요(문자열 길이가 0이 아니고 컬렉션 크기가 0이 아님). |
@Range(최소=최소값, 최대=최대값)
|
CharSequence, Collection, Map and Arrays,BigDecimal, BigInteger, CharSequence, byte, short, int, long and the respective wrappers of the primitive types
|
확인 주석이 달린 요소 값이 최소값과 최대값 사이에 있습니다. |
@NotBlank |
CharSequence |
주석의 요소 값이 비어 있지 않은지 확인합니다(null이 아니고 선행 공백을 제거한 후 길이가 0임). @NotBlank는 문자열에만 적용되며 비교 시 문자열의 공백이 제거됩니다. |
@Length(최소=하한, 최대=상한) 제한) | CharSequence
|
주석의 요소 값 길이가 최소 및 최대 간격 내에 있는지 확인 |
@이메일 |
CharSequence
|
주석의 요소 값이 이메일인지 확인하거나 정규식 및 플래그를 사용하여 사용자 정의 이메일 형식을 지정할 수 있습니다. |
자세한 내용은 공식 문서를 참조하세요: http://docs.jboss.org/hibernate/validator/SpringMVC 학습 시리즈(6) 데이터 검증.SpringMVC 학습 시리즈(6) 데이터 검증/reference/en-US/html/validator-usingvalidator.html
참고: 이전에는 처음 SpringMVC 학습 시리즈(6) 데이터 검증SpringMVC 학습 시리즈(6) 데이터 검증개의 기사에서 샘플 코드에 주의를 기울이지 않았습니다. 당시에 업로드한 패키지와 업로드된 항목에는 왜 코드가 없었는지 모르겠습니다. .project 프로젝트 파일을 다운받은 후 eclipse로 직접 import해서 실행하거나 가상머신으로 옮기지 못해서 다시 삭제했는데, 이 샘플코드들은 백업이 안되어 있어서 그대로 남아있습니다. 새로운 동적 웹 프로젝트를 생성하고 해당 구성 파일, 컨트롤러 및 뷰를 가져옵니다. 모든 분들께 불편을 끼쳐드려 죄송합니다.
위 내용은 SpringMVC 학습 시리즈(6)의 데이터 검증 내용입니다. PHP 중국어 홈페이지(www.php.cn)!