jsp 페이징 문제~
다슬
글목록을 부르는 board_list.jsp입니다.
교재를 따라하며 돌리며 해보는 프로젝트인데요.
자바 초보인 저로서는 페이징 처리가 너무나 힘듭니다.
여기서는 pager tag를 사용하는지라 더더욱 웹검색으로는 한계가 있는것 같습니다.
지금 현재로 실행을 하게되면..글이 11개 있다면 2페이지가 나와야 하는데..
next를 누르면 한없이 페이지가 늘어납니다.
도대체 감이 안잡힙니다..ㅡㅡ;;;;;;
코드 수정좀 해주시면서 주석좀 달아주시는...정말 감사한 분이 존재할까 라는 의문을 가지고
이렇게 올려봅니다.
부탁드립니다(__)
=====================================================================================
%@ page contentType=text/html; charset=euc-kr %
%-- 태그 라이브러리를 불러온다. --%
%@ taglib uri=http://jakarta.apache.org/taglibs/session prefix=sess %
%@ taglib uri=http://jakarta.apache.org/taglibs/dbtags prefix=sql %
%@ taglib uri=http://jsptags.com/tags/navigation/pager prefix=pg %
%-- 데이터베이스와의 연결을 생성한다. --%
sql:connection id=con
sql:urljdbc:mysql://localhost:3306/mysql/sql:url
sql:driverorg.gjt.mm.mysql.Driver/sql:driver
sql:userIdroot/sql:userId
sql:password1234/sql:password
/sql:connection
html
head
link rel=stylesheet type=text/css href=img/contents.css
/head
body
brbr
%-- 한 화면에 표시할 공지사항의 개수를 정의한다. --%
pg:pager maxIndexPages=10
table width=400 align=center border=0 cellpadding=4
tr
td height=1 bgcolor=#c0c0c0 colspan=2/td
/tr
tr
td align=center colspan=2font size=3b공지 사항/b/font/td
/tr
tr
td height=1 bgcolor=#c0c0c0 colspan=2/td
/tr
%-- 공지사항 목록을 읽어온다. --%
sql:preparedStatement id=stmt conn=con
sql:queryselect mid, title, writedate from site_notice order by mid desc/sql:query
sql:resultSet id=rs
%-- 하나하나의 공지사항을 pg:item으로 둘러싼다 --%
pg:item
tr
td▶▶▶ a href=notice_view.jsp?mid=sql:getColumn position=1/sql:getColumn position=2//a/td
td align=rightsql:getColumn position=3//td
/tr
tr
td height=1 bgcolor=#c0c0c0 colspan=2/td
/tr
/pg:item
/sql:resultSet
sql:wasEmpty
tr
td align=center colspan=2font color=redolor=red등록된 공지사항이 없습니다/font/td
/tr
tr
td height=1 bgcolor=#c0c0c0 colspan=2/td
/tr
/sql:wasEmpty
/sql:preparedStatement
/table
br
table border=0 cellpadding=0 cellspacing=0 align=center width=600
tr
td align=center
%-- 인덱스를 생성한다. --%
pg:index
pg:prev
a href=%= pageUrl %[ (%= pageNumber %) Previous ]/a
/pg:prev
pg:pages
a href=%= pageUrl %%= pageNumber %/a
/pg:pages
pg:next
a href=%= pageUrl %[ Next (%= pageNumber %) ]/a
/pg:next
/pg:index
/td
/tr
/table
/pg:pager
/body
/html
%-- 데이터베이스 연결을 해제한다. --%
sql:closeConnection conn=con/
-
Isolation
그리고 책따라 하는건 비추합니다. 실력 안늘어요^^;
제가 교육받을때 프로젝트 할때 조원들한테 게시판 하나씩 맡겼더니 책보고 거의 따라하던데...그 소스를 이해하더라도 자기가 생각하고 전체적인 구조를 파악하고 머릿속으로 그리거나 노트에 정의하면서 하면 몰라도 책을 보고 그사람이 하던방식대로 하게되면 짜고나서도 나중에 혼자 못짜더라구요.
근데 힘들어도 자기가 생각해서 한번만 짜면 게시판 도사됩니다. 왠만한 게시판은 하루에 몇개씩도 짜게되죠. -
태양
페이징에 필요한 값을 모조리 구하셔야죠.
참고로 페이징 클래스 하나 만들어 놓으면 편합니다.
현재 페이지, 전체 글수,한 페이지에 표시할 글의 갯수,한페이지에 표시할 블럭값,전체 페이지 값, 시작페이지 값, SQL문에 쓸 시작값,마지막값등
정의하셔서 써보세요. 산수니깐 생각 잘하셔서 구해보시고 mysql이라면 limit nvg.getStartRow(), 10
이런식으로 사용하시면 됩니다. -
내꺼하자
mysql의 경우 limit가 있답니다. 그것을 이용해서 원하는 범위 만큼의 쿼리 row를 읽어 오구요 그것을 밑에 페이지로 링꾸를 하신담에 startrow와 endrow의 범위를 정하시면 [1]페이지엔 1~10줄 [2]페이지엔 11~20식으로 각 페이지간 이전 페이지의 마지막 endrow+1이 다음 페이지의 startrow가 되는 식으로 하시면 간단하게 나마 만드실 수 있을겁니다. 그럼 각 페이지간 startrow와 endrow를 계속 알 수 있어야
-
해골
전체 게시물건수는??? 제눈에는 안보이네요... 다시보기는 귀찮고..
총건수나오고.. 페이지당 게시물건수 나오면 총 페이지수는 나오고..
이것이 기본이겠네요.. 페이지에 따른 쿼리는 검색하시면 수두룩 나올것입니다.