HashMap사용해서 현재 페이지 넘버링

easyliving·2023년 2월 10일
0

FRONT_END (JAVA_SCRIPT)

목록 보기
29/55

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;
	}
profile
가끔져요

0개의 댓글