유효성 검사 @Valid @Validated

박원종·2021년 3월 13일
0

spring

목록 보기
3/4
post-thumbnail

웹에서 회원등록을 위해 입력을 한다거나, 다양한 상황에서 입력을 할 때
제약조건들이 존재한다.
예를 들어 반드시 값을 입력 해야된다거나, 띄어쓰기는 허용하지 않는다 거나 등
여러 제약조건 들이 있을 수 있다.

그럴때 사용하는 것이 바로

@Valid, @Validated 에노테이션이다

🔎 사용법

🔗 pom.xml 의존성 추가

    <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>

💡 유효성 검사 항목 선정

(제약조건 @NotNull, @NotBlank, @NotEmpty)

제약조건 링크

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;

💡 @Valid 에노테이션 사용

Request로 넘어오는 User객체의 @Valid 애노테이션으로 제약조건이 걸려있는 필드 검증

-> 제약조건을 만족하지 못하면 해당 오류 내용을 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);
    }
profile
잡코딩

0개의 댓글