HashMap사용해서 현재 페이지 넘버링
public class PboardSelectAll implements Bservice {
BoardDao bdao=new BoardDao();
@Override
public void execute(HttpServletRequest request, HttpServletResponse response) {
List<BoardDto> list = new ArrayList<>();
int page =1;
if(request.getParameter("page")!=null) {
page= Integer.parseInt(request.getParameter("page"));
}
HashMap<String, Object> map=pageMethod(page);
int startRow=(int)map.get("startRow");
int endRow=(int)map.get("endRow");
String searchTitle=request.getParameter("searchTitle");
String searchWord=request.getParameter("searchWord");
list=bdao.selectAllThisPage(startRow,endRow);
request.setAttribute("list", list); //각 리스트 정보 들고오고
request.setAttribute("page", page); //현재 페이지 들고오고
request.setAttribute("listCount", map.get("listCount")); // 전체 개수 들고오고
request.setAttribute("maxPage", map.get("maxPage")); // 끝 페이지 수 들고오고
request.setAttribute("endPage", map.get("endPage")); // 현재 페이지 기준 끝 페이지
request.setAttribute("startPage", map.get("startPage")); // 현재 페이지 기준 처음 페이지
}
public HashMap<String, Object> pageMethod(int page){
HashMap<String, Object> map=new HashMap<>();
int listCount=bdao.listCount();
int rowPerPage=5;
int pageList=5;
int maxPage=(int)(Math.ceil((double)listCount/rowPerPage));
int startPage=((page-1)/pageList)*pageList + 1;
int endPage=maxPage;
if(endPage>startPage+pageList-1) {
endPage=startPage+pageList-1;
}
int startRow=(page-1)*rowPerPage+1;
int endRow=startRow+rowPerPage-1;
System.out.println("listCount:"+listCount);
map.put("listCount",listCount);
map.put("maxPage",maxPage);
map.put("endPage",endPage);
map.put("startPage",startPage);
map.put("startRow",startRow);
map.put("endRow",endRow);
return map;
}
}
public List<BoardDto> selectAllThisPage(int startRow, int endRow) {
list=new ArrayList<>();
try {
System.out.println("selectAllFboard");
conn=getConnection();
query="select * from (select rownum rnum,a.*from(select * from board2 order by TOPCHK desc,bgroup desc,bstep asc)a)"
+ "where rnum between ? and ?";
ps=conn.prepareStatement(query);
ps.setInt(1, startRow);
ps.setInt(2, endRow);
rs=ps.executeQuery();
while(rs.next()) {
bno=rs.getInt("bno");
id=rs.getString("id");
btitle=rs.getString("btitle");
bcontent=rs.getString("bcontent");
bdate=rs.getTimestamp("bdate");
bstep=rs.getInt("bstep");
bhit=rs.getInt("bhit");
bgroup=rs.getInt("bgroup");
bindent=rs.getInt("bindent");
bfile=rs.getString("bfile");
topchk=rs.getInt("topchk");
list.add(new BoardDto(bno,id,btitle,bcontent,bdate,bstep,bhit,bgroup,bindent,bfile,topchk));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(rs!=null)rs.close();
if(ps!=null)ps.close();
if(conn!=null)conn.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
System.out.println("selectAllThisPage"+list.get(0).getBcontent());
return list;
}