본문 바로가기
error/Backend

[서버에게 매개변수 값 주기]Optional int parameter is present but cannot be translated into a null value due to being declared as a primitive type

by 이쟝 2022. 3. 26.

java.lang.IllegalStateException:Optional int parameter 'reviewno' is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.

 

문제 상황 및 해결

내가 하고 싶었던 것은 후기글에서 수정을 누르면 후기글폼이 나와야했는데 저렇게 오류가 떴다.

알고보니 후기글에서 수정을 누를때 매개변수 값을 안줘서 오류가 났던 것이다.

 

매퍼(기존에 만들어놨던 select 쿼리문을 사용했다.)

<select id="reviewSelectOne" resultType="com.project.app.vo.ReviewVO">
	select reviewno, userid, title, views, content, date_format(createdate, '%y-%m-%d %h:%i%p') createdate
	from reviewboard where reviewno=#{param1}
</select>

 

컨트롤러

	@GetMapping(value="/review/reviewEdit")
	@ResponseBody
	public ModelAndView reviewEdit(int reviewno, ModelAndView mav) {
		mav.addObject("rVO", service.reviewSelectOne(reviewno));
		mav.setViewName("review/reviewEdit"); 
		return mav;
	}

 

이 코드를 

<a href="/app/review/reviewEdit>수정</a>

 

이 코드로 바꿨더니 잘 실행되었다.

<a href="/app/review/reviewEdit?reviewno=${vo.reviewno}">수정</a>