개발/Spring
🌱Spring:: @RequestParam(required = false)
hyuunii
2023. 10. 14. 11:52
파라미터 설정 후, 필드 받기 & 안받기 둘 다 가능하게 하려면?
* @RequestParam: Spring MVC에서 쿼리 스트링 정보를 쉽게 가져오기 위해 사용
e.g. /user?name=jade 이라는 요청에서 "jade" 이라는 값을 가져오기 위해 아래와 같이 컨트롤러를 구현하면
@GetMapping("/user")
@ResponseBody
public String getUserName(@RequestParam String name) {
return name;
}
@RequestParam을 통해 name 변수에 "jade"라는 문자열을 받아 처리할 수 있음.
But!!! 이대로라면 요청 쿼리 스트링에 "name" 필드가 없을 경우 즉, /user 와 같이 @RequestParam이 적용된 필드가 없으면 Bad Request, Required String parameter 'name' is not present 라는 예외를 발생시킨다.
만약에 name이 들어오지 않을 경우에도 에러 없이 코드를 정상적으로 실행하려면, @RequestParam(required = false) 이렇게 required 속성을 false로 추가하면 해당 필드가 쿼리 스트링에 존재하지 않아도 예외가 발생하지 않고 정상 작동한다.