Spring controller parameter

Seoina·2020년 1월 21일
0

2020camp

목록 보기
11/12

Controller @RequestMapping 어노테이션이 적용된 method는 웹 어플리케이션과 관련된 다양한 타입의 파라미터를 가질 수 있다. 서블릿을 사용하다 스프링으로 넘어가게 되면 서블릿의 관행대로 파라미터를 받는 경우가 많다.

  1. 서블릿과 같이 Request를 통해 파라미터를 가져오는 방법
    스크린샷 2020-01-21 오전 11.08.54.png

위와 같이 HttpServletRequest를 통해 파라미터를 가져온다. Request에서부터 가져오는게 너무 거창하고 지저분해 보인다는 단점이 있다.

  1. 파라미터를 Map으로 가져오는 방법
    스크린샷 2020-01-21 오전 11.10.32.png

Request로 가져오지 않을 뿐 Request를 통해 파라미터를 가져오는 방법과 비슷하다.

  1. @RequestParam을 통해 직접 매칭하는 방법
    스크린샷 2020-01-21 오전 11.11.22.png

형변환이 가능하기 때문에 깔끔해 보인다.

@RequestParam annotation과 HTTP 요청 파라미터의 관계를 보기 위해서는
스크린샷 2020-01-21 오전 11.16.24.png
다음과 같이 첫번째 파라미터인 userName은 name 요청 파라미터의 값을 전달받으며, 두번째 파라미터인 userEmail 파라미터는 email 파라미터 값을 전달 받는다.
JSP에서, String name= request.getParameter("name"); 과 같다.

@RequestParam 관련 속성 설명은;
value (String) = 파라미터 이름
required (boolean) = 해당 파라미터가 반드시 필수인지 여부. 기본값은 true

  1. model class를 통한 직접 매칭
    스크린샷 2020-01-21 오전 11.12.02.png

받는 자료가 많을 때 유용하다. 또한 모델 클래스로 받을 때 자동으로 모델 Attribute로 추가된다.
스크린샷 2020-01-21 오전 11.13.25.png
@ModelAttribute annotation을 통한 모델이 저장되는 Attribute Key 값을 직접 설정할 수 있다.
스크린샷 2020-01-21 오전 11.13.32.png

  1. PathVariable
    PathVariable은 다른 방법들 처럼 파라미터를 어떻게 받아서 처리하냐에 대한 것이 아닌 path에서 어떤 규칙으로 파라미터를 가져올까에 대한 규칙이다.
    스크린샷 2020-01-21 오전 11.15.17.png

모델 클래스에 대입도 가능하다.
스크린샷 2020-01-21 오전 11.15.32.png

0개의 댓글