관리 메뉴

Just Do it

[스프링/STS] Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "undefined" 본문

신입 개발자가 되기 위해 공부했던 독학 자료들/에러 해결 모음

[스프링/STS] Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "undefined"

Seojoo21 2022. 3. 23. 19:05

1. 에러 

 

WARN : org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Failed to bind request element: org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "undefined"

 

브라우저에서 자바스크립트를 통해 입력된 값이 컨트롤러로 전달될 때 타입이 String이나 number가 아닌 "undefined" 라서 컨트롤러에서 제대로 값을 받지 못해 발생한 에러로 보였다. 

 

 

2. 원인 

자바스크립트 코드에 console.log()를 찍어 브라우저 검사창에서 입력되는 값의 타입을 확인해본 결과 number로 들어와야 하는 reply.rno 값이 undefined로 들어왔다. 

 

다시 한번 문제인 메서드를 살펴보니, 댓글 삭제 처리를 담당하는 자바스크립트 메서드의 파라미터로 reply 객체를 넣어 객체의 rno 값인 reply.rno 값을 불러와 사용하는 것이 에러의 원인이었다. 

 

3. 해결 

reply 객체를 사용하지 않고 실제 댓글 삭제 처리에 적확한 값인 rno 값을 변수에 넣어주었다.