1:페이지사이즈
2:페이지List Size
3:총레코드 수
4.총페이지수
5.현재레코드
6.현재페이지
7. 하단 가로 시작페이지
8. 하단 가로 마지막페이지
값을 저장할 공간을 model에 함께 마련하고
DAO에서 쿼리문을 통해 얻은 데이터와 함께 set한다.
리스트형태로 값을 함께 담아두게 된다.
Controller에서 list에서 담아온 값을 꺼내 request.setAttribute를 사용하는데,
이때 list.get(0)이 페이지 나누기의 key라고 볼 수 있다.
get(int index)은 인자로 인덱스를 받습니다. 이 인덱스의 위치에 있는 객체를 리턴해준다.
즉, list.get(0)이라는 메서드를 사용하면
list라는 공간에서 0번 인덱스의 위치에 있는 객체들을 리턴해 준다고 생각하면 된다.
페이지 나누기에 필요한 8가지 값은 쿼리에서 받아온 값과 달리 각각 변수에 1개의 값들이 저장되어 있기 때문에, 인덱스 0번의 값만 가져오면된다.
list.get(0) 을 통해 0번 인덱스 결과를 리턴해주고 리턴받은 값을 guestVo형의 m에 저장한다.
m의 값을 다음 페이지 속성 'g'로 넘긴다. : request.setAttribute("g",m);
<c:if test="${ g.start_page > g.page_list_size }">
<a href='<%=path%>/BigListController?idx=${now_Record}' >
[이전( ${g.page_list_size } ) ]
</a>  
<c:set var="now_Record" value="${ ( g.start_page - 2 ) * g.page_size + 1}"/>
</c:if>
<c:if test="${ g.start_page <= g.page_list_size }">
[이전( ${g.page_list_size } )]  
</c:if>
<c:if test="${ g.end_page < g.pagetotal }">
<c:set var="now_Record" value="${g.end_page*g.page_size + 1} " />
<a href='<%=path%>/BigListController?idx=${now_Record}' >
[다음( ${g.page_list_size } )]
</a>  
</c:if>
<c:if test="${ g.end_page >= g.pagetotal }">
[다음( ${g.page_list_size } )]  
</c:if>
<c:forEach var="i" begin="${g.start_page}" end="${g.end_page}">
<c:if test="${ i <= g.pagetotal }">
<c:set var="now_Record" value="${ (i-1) * g.page_size + 1 }"/>
<a href='<%=path%>/BigListController?idx=${now_Record}' >
[ ${ i } ]</a>
</c:if>
</c:forEach>
<a href='<%=path%>/BigListController?idx=1'>[처음]</a>  
<c:set var="now_Record" value="${ (g.pagetotal -1 ) * g.page_size + 1}" />  
<a href='<%=path%>/BigListController?idx=${now_Record}' >[마지막]</a>