SpringMVC에서 JSR-303을 사용하여 @Valid 예제 확인
1. 검증 준비 시 사용되는 JAR
validation-api-1.0.0.GA.jar: JDK 인터페이스;
hibernate-validator-4.2.0.Final.jar는 상술한 인터페이스에 대한 실현이다.
log4j、slf4j、slf4j-log4j
2. 검증이 필요한 bean 작성
@NotNull(message=" ")
private String userName;
@Max(value=120,message=" 120")
private int age;
@Email(message=" ")
private String email;
3. 검사 방법
@RequestMapping("/login")
public String testValid(@Valid User user, BindingResult result){
if (result.hasErrors()){
List<ObjectError> errorList = result.getAllErrors();
for(ObjectError error : errorList){
System.out.println(error.getDefaultMessage());
}
}
return "test";
}
비고: 여기 @Valid 매개 변수가 있으면 BindingResult 매개 변수에 바짝 붙어 있어야 합니다. 그렇지 않으면spring이 검사를 통과하지 못할 때 바로 이상을 던집니다.프론트 데스크톱에서spring의 탭 라이브러리를 사용할 수도 있고 사용자 정의 처리를 할 수도 있습니다
spring 태그 라이브러리 사용법:
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<html>
<head>
<title>Reservation Form</title>
<style>
.error {
color: #ff0000;
font-weight: bold;
}
</style>
</head>
<body>
<form:form method="post" modelAttribute="vm">
<form:errors path="*" cssClass="error" />
<table>
<tr>
<td>Name</td>
<td><form:input path="userName" />
</td>
<td><form:errors path="userName" cssClass="error" />
</td>
</tr>
<tr>
<td>email</td>
<td><form:input path="email" />
</td>
<td><form:errors path="email" cssClass="error" />
</td>
</tr>
<tr>
<td colspan="3"><input type="submit" />
</td>
</tr>
</table>
</form:form>
</body>
</html>
4. 스프링을 켜는 Valid 기능
<mvc:annotation-driven />
5. JSR303이 정의한 검증 유형빈 검사
@Null 객체가 null인지 확인
@NotNull 인증 객체가 null이 아닌지 확인할 수 없습니다. 길이가 0인 문자열은 확인할 수 없습니다.
@NotBlank 는 제약 문자열이 Null인지 그리고 Trim 길이가 0보다 큰지 확인하고, 문자열만 검사하며, 앞뒤 공백을 제거합니다.
@Notempty 제약 요소가 NULL 또는 EMPTY인지 확인합니다.
부엘란 검사
@AssertTrue Boolean 객체가true 인지 확인
@AssertFalse Boolean 객체가 false인지 확인
길이 검사
@Size(min=, max=) 객체(Array, Collection, Map, String) 길이가 지정된 범위 내에 있는지 확인합니다.
@Length(min=, max=) Validates that the annotated string is between min and max included.
날짜 검사
@Past 현재 시간 이전에 Date 및 Calendar 객체가 있는지 확인
@Future 현재 시간 이후에 Date 및 Calendar 객체가 있는지 확인
@Pattern String 객체가 정규 표현식의 규칙에 부합하는지 확인
수치 검사, Stirng, Integer 형식에 사용하는 것을 권장합니다. int 형식에 사용하는 것을 권장하지 않습니다. 폼 값이 ""일 때 int로 변환할 수 없지만 Stirng은 "", Integer는 null로 변환할 수 있습니다.
@Min 은 Number 및 String 객체가 지정된 값과 큰지 확인합니다.
@Max 는 Number 및 String 객체가 지정된 값보다 작은지 확인합니다.
@DecimalMax 치수의 값은 구속에서 지정한 최대치보다 크지 않아야 합니다.이 구속조건의 매개변수는 BigDecimal을 통해 정의된 최대 값을 나타내는 문자열입니다.소수 존재 정밀도
@DecimalMin 치수의 값은 구속에서 지정한 최소값보다 작지 않아야 합니다.이 구속조건의 매개변수는 BigDecimal을 통해 정의된 최소 값의 문자열 표현입니다.소수 존재 정밀도
@Digits에서 Number 및 String 구성이 적합한지 확인
@Digits(integer=,fraction=) 문자열이 지정한 형식에 맞는 숫자인지 확인하고,interger는 정수 정밀도를 지정하고,fraction는 소수 정밀도를 지정합니다.
@Range(min=, max=) 숫자가 min과 max 사이인지 확인합니다.
@Range(min=10000,max=50000,message="range.bean.wage")
private BigDecimal wage;
@Valid 는 연관된 객체를 검사합니다. 연관된 객체가 집합 또는 그룹이면 요소에 대해 검사하고 맵이면 값 부분을 검사합니다.(반복 검증 여부)
@CreditCardNumber 신용카드 인증
@Email 인증이 메일 주소인지 확인합니다. null이면 인증하지 않고 인증을 통과합니다.
@ScriptAssert(lang= ,script=, alias=)
@URL(protocol=,host=, port=,regexp=, flags=)
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
springmvc application/octet-stream problemmistake: Source code: Solution: Summarize: application/octet-stream is the original binary stream method. If the convers...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.