[스프링 3.0] @Valid 실습
1. 라이브러리 추가.
<!-- Validation -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>com.springsource.org.hibernate.validator</artifactId>
<version>4.0.0.GA</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>com.springsource.javax.xml.bind</artifactId>
<version>2.1.7</version>
</dependency>
2. 빈 설정.
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="cacheSeconds" value="0" />
<property name="webBindingInitializer">
<bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
<property name="validator" ref="validator" />
</bean>
</property>
</bean>
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>
3. 애노테이션 기반 검증 설정
@Column(length = 100)
@NotEmpty(message="제목을 입력하세요!")
private String title;
@Column(columnDefinition="TEXT")
@NotEmpty(message="제목을 입력하세요!")
private String contents;
4. 컨트롤러 코드 수정.
@RequestMapping(value = "/notice/update/{id}", method = RequestMethod.POST)
public String updateForm(@Valid Notice notice, BindingResult result, SessionStatus status) {
if (result.hasErrors()) {
return "notice/update";
} else {
noticeService.update(notice);
status.setComplete();
return "redirect:/notice/" + notice.getId() + ".do";
}
}
끝~!! 기본 에러 메시지는 애노테이션에서 변경할 수 있습니다.
이제 JSR 303 애노테이션과 그 확장 애노테이션에 뭣들이 있는지 살펴봐야겠네요.