-
핸들러 메소드 3부: @RequestParamSPRING/스프링 MVC 2021. 6. 30. 00:37
@RequestParam
- 요청 매개변수에 들어있는 단순 타입 데이터를 메소드 아규먼트로 받아올 수 있다.
- 값이 반드시 있어야 한다.
-> required=false 또는 Optional을 사용해서 부가적인 값으로 설정할 수도 있다.
- String이 아닌 값들은 타입 컨버전을 지원한다.
- Map<String, String> 또는 MultiValueMap<String, String>에 사용해서 모든 요청 매개변수를 받아 올 수도 있다.
- 이 애노테이션은 생략 할 수 있다.
예시 :
@Controller public class SampleController { @ResponseBody public Event getEvent2(@RequestParam(required = false, defaultValue = "ok") String name) { Event event = new Event(); event.setId(1); event.setName(name); return event; } @PostMapping("/events4") @ResponseBody public Event getEvent3(@RequestParam Map<String, String> params) { Event event = new Event(); event.setName(params.get("name")); return event; } }
테스트 소스
@RunWith(SpringRunner.class) @WebMvcTest public class Hm2Test { @Autowired MockMvc mockMvc; @Test public void getEvents3() throws Exception { mockMvc.perform(get("/events3?name=jump")) .andDo(print()) .andExpect(status().isOk()) .andExpect(jsonPath("name").value("jump")); } @Test public void getEvents4() throws Exception { mockMvc.perform(post("/events4") .param("name","jump")) .andDo(print()) .andExpect(status().isOk()) .andExpect(jsonPath("name").value("jump")); } }
1. @RequestParam은 테스트 케이스 getEvents3와 같이 URL로 파라메터를 받을 수 있다. (GET방식)
2. 테스트 케이스 getEvent4와 같이 Map으로도 데이터를 받을 수 있다. (form 데이터의 경우
(GET, POST방식 모두 가능))
'SPRING > 스프링 MVC' 카테고리의 다른 글
핸들러 메소드 5부: @ModelAttribute (0) 2021.07.03 핸들러 메소드 4부: 폼 서브밋 (타임리프) (0) 2021.07.03 핸들러 메소드 2부: URI 패턴 (0) 2021.06.27 HTTP 요청 맵핑하기 7부: 맵핑 연습 문제 (0) 2021.06.27 요청 맵핑하기 6부 커스텀 애노테이션 (0) 2021.06.27