티스토리 뷰

 

 

 

 

코배스 코드로 배우는 스프링 웹프로젝트 하던 중에

댓글 페이징을 하는데 댓글 등록하고 화면처리 하는 부분에 페이징이 안되서 해결과정을 글로 남김

ㅋㅋ댓글 넘겨오는 것도 문제였지만 그건 내 문제였다고 한다^.ㅠ

아무튼 책에서 알려준 코드는 이렇다.

먼저 댓글을 등록하는 부분

//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); }
        //...생략
      }
}

이렇게 아무튼 한 줄만 바꿔주면 나는 잘 되었다!
책대로 하면 왜 안되는지는 잘 모르겠지만..
나도 백업용 + 혹시 찾아볼 사람들을 위해서 글을 올린다. 빠이!

 

 

 

 

 

 

728x90
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함