본문 바로가기

Programming/Java & JSP & Spring

[Spring] @RequestParam 파라미터 매핑

컨트롤러를 구현할 때 가장 많이 사용되는 어노테이션은 바로 @RequestParam 일 것이다.


@RequestParam은 HTTP 요청 파라미터를 컨트롤러 메소드의 파라미터로 전달받을 때 사용된다.

즉, JSP에서 request.getParameter(); 와 비슷하다고 볼 수 있다.


@RequestParam 어노테이션이 적용된 파라미터는 기본적으로 필수 파라미터이다.

따라서 @RequestParam 어노테이션에 명시한 HTTP 요청 파라미터가 존재하지 않을 경우

스프링 MVC는 잘못된 요청을 의미하는 400 응답 코드를 웹 브라우저에 전송한다.


필수가 아닌 파라미터인 경우 required 속성 값을 주어 false로 지정해주면 된다.

required 속성 값을 따로 작성안할 경우 기본 값은 true로 지정되어 있다.

@RequestParam(value="query", required=false) String query


필수가 아닌 파라미터의 값이 존재하지 않을 경우는 null 값을 할당한다.

하지만 null을 할당할 수 없는 기본 데이터 타입일 경우에는 타입 변환 에러가 발생한다.


따라서 기본 데이터 타입을 사용할 때는 요청 파라미터가 존재하지 않을 때 기본 값을 할당하는 경우가 많다.

이런 경우, defaultValue 속성을 이용해서 기본 값을 지정할 수 있다.

@RequestParam(value="page", defaultValue="1") int page


또한 @RequestParam은 자동으로 타입을 변환해준다.

예를 들어, @RequestParam("page") int page 일 경우 page 문자열을 자동으로 int형으로 변환해준다.

만약 int형으로 형변환이 불가능한 데이터가 전송된다면 400응답코드를 웹브라우저에 전송한다.


















출처: http://devbox.tistory.com/entry/Spring-컨트롤러-메서드의-파라미터-타입 [장인개발자를 꿈꾸는 :: 기록하는 공간]



'Programming > Java & JSP & Spring' 카테고리의 다른 글

[Spring] HttpSession과 인터셉터  (0) 2017.02.21
[Spring] HiddenMethod의 활용  (0) 2017.02.15
[Spring] VO와 DTO  (0) 2017.02.02
[Spring] 트랜잭션 처리  (0) 2017.02.02
[Spring] AOP, Filter, Interceptor의 차이  (0) 2017.02.01