🍃 𝗦𝗽𝗿𝗶𝗻𝗴 𝗕𝗼𝗼𝘁
컨트롤러 @RequestParam 기본값 설정하기@RequestParam(required = false)
비타민찌
2022. 3. 7. 13:24
728x90
컨트롤러 @RequestParam 기본값 설정하기
@RequestParam(required = false)
@Controller에서 파라미터를 하나 받아보자.
@GetMapping("/test/{cnt}")
public String methodName(@RequestParam int cnt){
// TODO..
return "test";
}
위와 같이 코드를 작성하면 "localhost:8080/test/3"과 같이 호출했을 때 cnt 값이 3이 된다.
여기서 만약 "localhost:8080/test"와 같이 변수를 넣어주지 않으면 에러가 발생한다.
Resolved [org.springframework.web.bind.MissingPathVariableException: Missing URI template variable 'cnt' for method parameter of type int
@RequestParam은 Controller 메소드의 파라미터와 웹요청 파라미터와 맵핑하기 위한 어노테이션인데
관련 속성은 아래와 같다.
이름
|
타입
|
설명
|
value
|
String
|
파라미터 이름
|
required
|
boolean
|
해당 파라미터가 반드시 필수인지의 여부. 기본값은 true.
|
required 조건이 없으면 기본값은 true, 즉 필수 파라미터이다. 파라미터 pageNo가 존재하지 않으면 Exception이 발생한다.
이럴 때는 아래와 같이 처리할 수 있다.
@GetMapping(value = {"/test/{cnt}", "/test"})
public String methodName(@RequestParam(required = false) Integer cnt){
// TODO..
return "test";
}
또 다른 해결방법으로는 Optional도 있다는데 이는 다음 기회에!
728x90