JAVA/SPRING
@PathVariable
gracelove91
2019. 10. 20. 12:16
1020-스프링MVC-핸들러메소드-URI패턴
@GetMapping("/events/{id}")
public String getEvent(@PathVariable int id) {
...
}
@GetMapping("/events/{id}")
가 URI패턴이다.
핸들러
@GetMapping("/events/{id}")
@ResponseBody
public Event getEvent(@PathVariable Integer id) {
Event event = new Event();
event.setId(id);
return event;
}
클라이언트 역할하는 테스트코드.
@Test
public void getEvent() throws Exception {
mockMvc.perform(get("/events/1"))
.andDo(print())
.andExpect(status().isOk())
.andExpect(jsonPath("id").value(1));
}
/events/1
로 요청을 보내고있다. 당연히 문자열이다. 하지만 스프링에서는 자동 형변환해준다. (핸들러 메소드의 아규먼트를 볼 것.)- id값이 안들어오면 BadRequest 뜬다. 방지하려면 아규먼트타입에 required = false 집어넣어줄 것.
- ex )
@PathVariable(required=false) Integer id
- ex )