웹에서 회원등록을 위해 입력을 한다거나, 다양한 상황에서 입력을 할 때
제약조건들이 존재한다.
예를 들어 반드시 값을 입력
해야된다거나, 띄어쓰기는 허용하지 않는다
거나 등
여러 제약조건
들이 있을 수 있다.
그럴때 사용하는 것이 바로
@Valid, @Validated 에노테이션이다
<dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.1.Final</version> </dependency> <!-- hibernate-validator --> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>6.0.1.Final</version> </dependency>
public class User { private int seq; @NotNull private int class_no; @NotBlank(message = "이름을 입력하지 않았습니다.") private String name; @NotBlank private String major; @NotBlank private String field; @NotBlank private String id; @NotBlank private String pw;
-> 제약조건을 만족하지 못하면 해당 오류 내용을 signUp 메소드의 두번째 파라미터, BindingResult에 담아낸다. 이 값을 통해 디테일한 오류처리 가능해짐
자세한 오류처리 링크
@ResponseBody @RequestMapping(value="/sign-up", method=RequestMethod.POST) public ResponseEntity signUp(@RequestBody @Valid User user, BindingResult bindingResult){ //can do something(like ErrorHandling) userService.signUp(user); return new ResponseEntity(HttpStatus.OK); }