Spring/Spring MVC

요청 매개변수를 메소드 아규먼트로 받아오는 방법

100win10 2020. 6. 9. 00:39

요청 매개변수

 

1. 요청으로 보낼 때 ?key=value 형태의 쿼리 파라미터로 보내기

2. Http 본문에 form 데이터로 보내기

 

 

 

  • 둘 다 요청 매개변수로 서블릿은 처리하게 된다.

  • 그리고 @RequestParam을 통해 받아올 수 있다.

 

 

 

1. 요청으로 보낼 때 ?key=value 형태의 쿼리 파라미터로 보내기

 

 

  • 따라서 다음과 같은 Test는 통과 하게 된다.
  • 쿼리 파라미터(name = seungyeol) 가 RequesetParam에 의해
  • 해당 메소드 아규먼트인 String name에 담기게 된다.

 

 

  • @RequestParam은 Map으로 받아올 수 있고 해당 파라미터 이름으로 꺼내어 쓸 수도 있다.

 


2. Http 본문에 form 데이터로 보내기

 

 

1.

 

  • Get 요청으로 /hello/form URI 요청을 처리한다.

 

2.

  • 이때 return 값은 events/form.html로 가게 된다.

 

3. 

 

  • 모델에 Hello를 담을 Form backing Object를 담아서 뷰로 가게된다.
  • 해당 객체는 form에서 받아올 데이터를 저장하는 객체로 생각하자.

 

 

4.

 

 

th:action : submit 시 해당 링크로 가게 된다.

  • @{} URL 표현식

 

th:object : 모델에 있는 데이터를 참조 여기서는 비어있는 Hello 객체

  • ${} variable 표현식

 

th:field : 이 객체가 가지고 있는 데이터 중 name을 선택한다. 

  • *{} selection 표현식

 

  • 이제 모델에 넣어놨던 데이터가 보이게 되고 Submit 시 해당 데이터를 담아서 
  • post요청으로 "/hello"로 가게 된다.

 

 

 

5.

 

 

 

  • 이제 Form 데이터에 name을 @RequestParam을 통해 String name으로 받아와서 담아주게 되고
  • ResponseBody에 의해 Json 타입으로 반환되게 된다. 

 

 

 

이렇듯 @RequestParam은 단순 타입에 값들을 바인딩해주는 것을  볼 수 있다.