티스토리 뷰
코배스 코드로 배우는 스프링 웹프로젝트 하던 중에
댓글 페이징을 하는데 댓글 등록하고 화면처리 하는 부분에 페이징이 안되서 해결과정을 글로 남김
ㅋㅋ댓글 넘겨오는 것도 문제였지만 그건 내 문제였다고 한다^.ㅠ
아무튼 책에서 알려준 코드는 이렇다.
먼저 댓글을 등록하는 부분
//get.jsp 내
modalRegisterBtn.on("click", function(e){
replyService.add(reply, function(result){
//....생략
showList(-1);
});
});
위에서 showList(-1)을 넘겨주는데,
그러면 showList()에서 받는다.
//get.jsp 내
function showList(page){
replyService.getList(
{bno: bnoValue, page: page || 1 },
function(replyCnt, list){
if(page == -1) { pageNum = Math.ceil(replyCnt/10.0) ; showList(pageNum); }
//...생략
}
}
코드에서 마지막 줄의 if 문으로 page에 -1이 넘어오면
맨 마지막 페이지(최근 댓글이 있는 페이지)를 다시 넘겨준다는 건데
확실하지 않지만 이미
replyService.getList( {bno: bnoValue, page : page || 1 } ...)
여기서 replyService.getList를 지나간다고 생각하여
나는 프론트는 잘 몰라서..
보내기 전에 값을 바꿔서 보내보고 싶었지만 replyCnt를 구할 길이 없어서 또 에러가 났다.
그러면 -1을 넘겨서 replyCnt만 구하면 된다는 말이었다.
어.. 그니까 js 넘어오는 replyService의 getList를 보면
//reply.js 내
function getList(param, callback, error){
var bno = param.bno;
var page = page || 1;
$.getJSON("/replies/pages/" + bno + "/" + page + ".json", function(data){
if(callback){ callback(data.replyCnt, data.list) };
//...생략
}
}
여기로 오는데, 그럼 page가 -1로 넘어와서 서버로 가버린다.
page가 -1이니 당연히 제대로 나올리가 없다.
그래서 나는 page를
🎀var page = (param.page == -1 ? 1 : param.page);
🎀
로 바꿔주었다.
의도는 일단 replyCnt를 받기 위해서 1페이지로 가정하여 넘기는 것,
callback 값이 다시 jsp 로 넘어오면 여기는 page가 아직 -1 이므로 pageNum을 구해 다시 진행된다.
//get.jsp 내
function showList(page){
replyService.getList(
{bno: bnoValue, page: page || 1 },
function(replyCnt, list){
if(page == -1) { pageNum = Math.ceil(replyCnt/10.0) ; showList(pageNum); }
//...생략
}
}
이렇게 아무튼 한 줄만 바꿔주면 나는 잘 되었다!
책대로 하면 왜 안되는지는 잘 모르겠지만..
나도 백업용 + 혹시 찾아볼 사람들을 위해서 글을 올린다. 빠이!
'#2 > Spring' 카테고리의 다른 글
[Spring] logger 생성.. 정적 팩토리 메서드..오류.... (0) | 2022.03.15 |
---|---|
[Spring] Produces & Consumes (0) | 2022.01.03 |
[Spring] @ModelAttribute와 @RequestParam (0) | 2021.11.09 |
[Spring] eclipse tomcat 서버 실행 경로 변경 (0) | 2021.11.05 |
[Spring] 각 계층에서 CRUD 테스트하기 (0) | 2021.11.04 |