[ERROR_LOG] Required String parameter parameter is not present


Required String parameter ‘parameter’ is not present

Ajax로 Json에 담아 컨트롤러에 파라미터 값을 보냈고, 컨트롤러의 @RequestParam 으로 해당 파라미터값을 받았을 때, 전달 받은 파라미터값이 없거나 타입이 다를 경우 발생하였음.

@RequestMapping(path = "getMemberInfo")
@ResponseBody
public String getMemberInfo( @RequestParam String memberId ) {
    ....
    ....
    ....
  return memberInfo;
}

위의 경우 @RequestParam을 선언하고, required = false 또는 defaultValue 를 사용하지 않았기 때문에, Ajax로 파라미터값을 전달 받을 때 무조건 해당 값이 정확히 넘어와야 함.


defaultValue

@RequestParam(defaultValue = “1”) 형태로 사용

@RequestMapping(path = "getMemberInfo")
@ResponseBody
public String getMemberInfo( @RequestParam(defaultValue = "1") String memberId ) {
    ....
    ....
    ....
  return memberInfo;
}

위의 예제 코드는 기본값으로 파라미터를 memberId로 전달받을 때, 값이 없다면 기본값을 1로 설정함.


required=false

@RequestMapping(path = "getMemberInfo")
@ResponseBody
public String getMemberInfo( @RequestParam(required = false) String memberId ) {
    ....
    ....
    ....
  return memberInfo;
}

위의 예제 코드는 기본값으로 파라미터를 memberId로 전달받을 때, 값이 없다면 Exception 없이 코드를 실행시킴


Reference