본문 바로가기

Spring/MVC

핸들러 메소드 - 요청 데이터

아규먼트와 리턴 타입

 

핸들러에서 받을 수 있는 메소드 아규먼트를 먼저 봐보자

 

표 처럼 아규먼트 타입을 받을 수 있다.

 

이번엔 응답 리턴 값을 알아보자

 

 

ResponseEntity 는 응답 본문 부터 헤더 까지 셋팅 할 수 있다.

 

URI 패턴

 

이번엔 Uri에 들어있는 패턴을 메소드 아규먼트로 가져오는 방법을 알아보자

 

PathVariable 을 통해 가져온다

문자열을 넘겨줘도 Integer 로 자동 변환 된다.

Matrix Variable 을 쓰기도 한다.

 

로 쓰면 

로 받아 올 수 있다.

 

하지만 이 설정은 비활성화 되어 있기때문에,

쓰고 싶으면

 

로 설정을 해서 활성화 시켜야 한다.

 

 

요청 파라미터

 

파라미터는

@RequestParam 으로 받아오는데

이걸 생략이 가능하다.

 

객체를 받아올 때는 @ModelAttribute 를 이용해서 받아 올 수 있다.

(ModelAttribute 도 생략 할 수 있다.)

만약, Event 객체 안에 Integer 타입의 필드 가 있는데,

여기에 String 값이 들어오면 bindingError 가 발생하는데

이걸 직접 처리 하기 위해서는 BindingResult 를 옆에 붙여주면 된다.

 

에러가 BindingResult 에 들어가고 요청은 정상 작동한다. ]

다만, 요청 값은 정상적으로 들어가지 않는다.

 

@Valid 를 붙이면 검증 가능 하다.

Event 객체에서 검증이 필요한 필드에

@Min() 을 붙이면 해당 조건 으로 검증이 가능해진다.

 

하지만 이 Java 스펙으로 있는 @Valid 는 그룹으로 검증이 불가능 하다.

 

 

이런식으로 group 으로 사용할 경우 

@Validated 에서는 검증이 가능하다.

이렇게 해당 그룹만 검증이 가능 하다.