본문 바로가기
error/Frontend

페이징처리를 할 때 안 넘어가는 이유(For input string:2")

by 이쟝 2022. 4. 12.
Validation failed for object='pagingVO'. Error count: 1
org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors Field error in object 'pagingVO' on field 'currentPage': rejected value ['2']; codes [typeMismatch.pagingVO.currentPage,typeMismatch.currentPage,typeMismatch.int,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [pagingVO.currentPage,currentPage]; arguments []; default message [currentPage]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'int' for property 'currentPage'; nested exception is java.lang.NumberFormatException: For input string: "'2'"]

 

문제 상황

js파일로 버튼을 누르면 Get방식으로 넘어가게 하려고 했는데 int형을 string형으로 받는다고 해서 Number( )로 형변환을 해줬다. <script>가 아니라 따로 js파일을 만들면 ${ }을 사용할 수 가 없어서 id.,text( )로 가져왔다.

$(function(){
	
	let currentPg = $("#currentPg").text();
	let nextBtn = Number(currentPg) + 1;
	let prevBtn = Number(currentPg) - 1;
	
	let pageBd = $("#pageBody").text();
	let pageBody = parseInt(pageBd); 
	
	let category = $("#cvoCate").text();
	
	$("#prevBtn").click(function(){
		location.href="/board/shareAndReqList?currentPage='"+prevBtn+"'&category="+category+"";
	})
	
	$("#pageBody").click(function(){
		location.href="/board/shareAndReqList?currentPage='"+pageBody+"'&category="+category+"";
	});
	
	$("#nextBtn").click(function(){
		location.href="/board/shareAndReqList?currentPage='"+nextBtn+"'&category="+category+"";
	})
});

 

하지만 계속 오류가 났다.. 왜그런지 봤더니 홑따옴표 때문이었다...

location.href="/board/shareAndReqList?currentPage="+nextBtn+"&category="+category+"";

이렇게 바뀌니까 오류 없이 넘어갔다..!

 

알게 된 사실 

1. js파일로 하면 ${ } 사용 불가! <sciprt></script>안에서만 가능

2. '"+변수명+"'은 문자열 안에 넣지말자...!

3. missmatch나오면 형변환 잘보기..!