다음과 유사한 요청 매핑이있는 경우 :
@RequestMapping(value = "/test", method = RequestMethod.POST)
@ResponseBody
public void test(@RequestParam(value = "i", defaultValue = "10") int i) {
}
그런 다음이 요청을 다음과 같이 호출합니다.
http://example.com/test?i=
오류 메시지가 나타납니다.
'java.lang.String'유형의 값을 'int'유형으로 변환하지 못했습니다. 중첩 된 예외 : java.lang.NumberFormatException : 입력 문자열 : "" '
자바 스크립트 클라이언트가 빈 매개 변수를 보내지 못하도록하거나 문자열 값을 받아들이고 비어 있지 않은 경우에만 구문 분석하여이 문제를 해결할 수 있습니다.
업데이트 : 이후 버전의 봄은 이제 원래 원하는 동작을 구현합니다.
나는 방금 봄 4.3.5에서 이것을 테스트했으며 이제 동작이 실제로는를 올리지 않고 null 값을 기본값으로 바꾸는 것을 발견했습니다 NumberFormatException
. 내 원래 매핑이 이제 제대로 작동합니다.
이 동작이 변경된 봄 버전을 잘 모르겠습니다.
String
유형. user902383, 맞습니다. 정수 값의 경우 null / 빈 값이 대신 defaultValue를 사용하는 것을 선호합니다.