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
'🍃 𝗦𝗽𝗿𝗶𝗻𝗴 𝗕𝗼𝗼𝘁' 카테고리의 다른 글
@Controller와 @RestController 차이 (0) | 2022.03.10 |
---|---|
Spring Controller required 속성 (0) | 2022.03.10 |
스프링부트 검색기능 구현 : Get방식으로 넘긴 Param 받기, 검색 쿼리문(where 컬럼명 like) (0) | 2022.03.02 |
스프링부트, MVC 패턴 View의 역할과 생성 (0) | 2021.08.04 |
스프링부트, MVC 패턴 Controller(컨트롤러)의 역할과 생성 (URI) (0) | 2021.08.04 |
댓글