본문 바로가기
Spring-Java/Spring

@RequestParam (feat.@ResponseBody)

by 현대타운301 2023. 12. 15.

 

세 줄 요약

View로부터 넘겨준 쿼리문의 값을 파라미터 이름으로 바인딩

속성에는 1) value, 2) required, 3) default 가 있음

value의 경우 View에서 넘겨준 파라미터 이름과 매개변수의 이름이 같다면 생략가능

 


 

@ResponseBody

 

sourcecode

 

 

@ResponseBody

해당 어노테이션을 사용하면 ViewResolver 대신 HttpMessageConverter가 동작

     - @Controller 어노테이션이 적용 되었더라도, View 조회를 무시하고 HTTP message body에 직접 return값을 반환

 

* HttpMessageConverter

Java와 HTTP 웹 어플리케이션 간에 객체변환을 통한 파라미터 전달을 도와주는 어노테이션

여러 가지 타입의 데이터 처리를 위해 기본으로 등록되어 있음

     - 기본 문자 처리의 경우 : StringHttpMessageConverter

     - 기본 객체 처리의 경우 : MappingJackson2 HttpMessageConverter

 

* 구현 및 상속 관계

- HttpMessageConverter(i) → AbstractHttpMessageConverter(ac) → StringHttpMessageConverter(c)

 


 

@RequestParam

 

@RequestParam 

URL의 '?' 뒤에 오는 쿼리의 결과를 하나씩 받을 때 사용

id, pw, gender, coffee 각각 하나씩 받을 때 사용

 

 

속성

@RequestParam interface

 

1) value

- View로 부터 넘겨 받는 파라미터 이름

- 메소드의 매개변수의 이름과 같다면 해당 속성은 생략 가능

 

2) required

- false : View에서 넘겨주는 값이 없는 경우를 허용

     - View에서 넘겨주는 값이 없는 경우 매개변수 값은 defaultValue로 세팅

     - defaultValue가 설정되지 않은 경우

          - key 값이 있는 경우 : 빈 문자열(" ")

          - key 값이 없는 경우 : null

          - int 타입의 매개변수엔 빈 문자열과 null 모두 담을 수 없기 때문에 예외 처리가 필요!

- true : View에서 반드시 넘겨줘야 하는 경우 (required 속성의 default 값)

     - 넘겨주지 않는 경우를 확인하기 위한 예외처리 필요

 

3) defaultValue

- required=false의 경우(View로 부터 넘겨받은 값이 없는 경우), 기본으로 설정할 값

 

 

 

 

* refs

https://kimcoder.tistory.com/531

https://cheershennah.tistory.com/179

https://hyos-dev-log.tistory.com/18

 

 

 

 

 

'Spring-Java > Spring' 카테고리의 다른 글

@RequiredArgsConstructor  (1) 2023.12.21
@RequestBody, @ResponseBody (feat.@ModelAttribute)  (0) 2023.12.18
Day55_HTTP 요청/응답 사이클  (1) 2023.12.14
Day53_Spring Legacy Project 설정  (0) 2023.12.14
Day51_MVC Architecture  (2) 2023.12.06