반응형
@Valid Annotation을 이용한 유효성 체크
@Valid 어노테이션을 이용해서 유효성 체크를 하고자 할 때는 우선 Maven 설정 pom.xml에 아래와 같이 dependency를
추가한다.
1. dependency 추가
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
2. 도메인 클래스에서 유효성 검증을 위한 어노테이션 추가
public class Member{
//message 항목이 없으면 영문 기본 문구가 보여짐
@NotNull
private String id;
@Size(min="3",max="5",message="3자이상 5자미만으로 작성해야 합니다.")
private String password;
}
<데이터 검증을 위한 기본제공 Annotation>
어노테이션 설명
@AssertFalse 거짓인지?
@AssertTrue 참인지?
@DecimalMax 지정 값 이하의 실수인지?
@DecimalMin 지정 값 이상의 실수인지?
@Digits(integer=,fraction=) 정수 여부
@Future 미래 날짜인지?
@Max 지정 값 이상인지?
@Min 지정 값 이하인지?
@NotNull Null이 아닌지?
@Null Null인지?
@Pattern(regex=,flag=) 정규식을 만족하는지?
@Past 과거날짜인지?
@Size(min=,max=) 문자열 또는 배열등의 길이 만족 여부
3. Controller에서 @Valid 호출
@RequestMapping(value="/write.do",method=RequestMethod.POST)
public String write(@Valid Member member,BindingResult result){
//유효성 체크 결과 전송된 데이터가 도메인 클래스에 지정한 검증 규칙에 어긋날 경우 폼으로
//돌려 보냄
if(result.hasErrors()){
return "writeForm"
}
....
return "writePro";
}
4. view에서 메시지 표시하기
커스텀 태그 사용을 위해서 삽입
<%@ prefix="form" taglib uri="http://www.springframework.org/tags/form"%>
메시지 표시
<form:input path="name">
<form:errors path="name" />
5. 메시지 작성
유효성 체크 이후 폼에서 읽어 들일 메시지가 표시된 properties 파일을 작성
Size.command.password = 4자 이상 10자 이하로 작성하세요!
6. 설정파일(dispatcher-servlet.xml)에 설정 추가
<mvc:annotation-driven />
------------------------------------------------
하이버네이트를 이용한 유효성 체크
위에 명시한 @Valid를 이용해서 기본적인 유효성 체크를 도메인 클래스 단위로 수행할 수 있는데 그 때
사용하는 어노테이션을 하이버네이트에서 제공하는 어노테이션으로 확장할 수 있다.
1. dependency 추가
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.2.0.Final</version>
</dependency>
2. 도메인 클래스에서 유효성 검증을 위한 어노테이션 추가
<데이터 검증을 위한 기본제공 Annotation>
어노테이션 설명
@Email email 형식에 맞는지?
@Length(min=,max=) 문자열 길이가 최소~최대 인지?
@NotEmpty empty가 아닌지?
@Range(min=,max=) 숫자범위
@URL url 형식에 맞는지?
3. 메시지 작성
유효성 체크 이후 폼에서 읽어 들일 메시지가 표시된 properties 파일을 작성
NotEmpty.command.id = 아이디는 필수입니다!
반응형
'Spring' 카테고리의 다른 글
myBatis에서 table 생성하기 (1) | 2016.09.30 |
---|---|
ojdbc6 maven 설정 (0) | 2016.09.29 |
스프링에서 커스텀 데이터 처리할 때 java.sql.Date 처리하기 (0) | 2016.09.29 |
스프링에서 커스텀 데이터 타입 변환 처리하기 (0) | 2016.09.29 |
오라클 드라이버 maven 설정하기 (0) | 2016.09.28 |