-
[전자정부프레임워크] paginationtag 페이징 처리개발 2021. 4. 26. 17:50728x90
Controller.java
@RequestMapping(value={"index.do", "list.do"}) public String LectureList(HttpServletRequest request, Model model , @RequestParam(value="srchType", required=false) String srchType , @RequestParam(value="srchWord", required=false) String srchWord) throws Exception { // 전자정부프레임워크 페이징 연습 int currentPageNo = request.getParameter("curPage")==null? 1:Integer.parseInt(request.getParameter("curPage")); int recordCountPerPage = request.getParameter("recordCountPerPage")==null? 10:Integer.parseInt(request.getParameter("recordCountPerPage")); int pageSize = request.getParameter("pageSize")==null? 10:Integer.parseInt(request.getParameter("pageSize")); PaginationInfo paginationInfo = new PaginationInfo(); paginationInfo.setCurrentPageNo(currentPageNo); //현재 페이지 번호 paginationInfo.setRecordCountPerPage(recordCountPerPage); // 한 페이지에 게시되는 게시물 건수 paginationInfo.setPageSize(pageSize); // 페이징 리스트의 사이즈 int firstRecordIndex = paginationInfo.getFirstRecordIndex(); recordCountPerPage = paginationInfo.getRecordCountPerPage(); Map<String, Object> commandMap = new HashMap<String, Object>(); commandMap.put("firstIndex", firstRecordIndex); commandMap.put("recordCountPerPage", recordCountPerPage); /* 이 부분에 카운터와 같은 조건으로 데이터를 뽑아서 모델객체에 담아 리턴하시면됩니다. */ int LecCount = resultCnt; paginationInfo.setTotalRecordCount(LecCount); model.addAttribute("paginationInfo", paginationInfo); // 이 부분이 페이징될 객체 // 검색유지를 위해 설정 - 다른방법도 존재함 model.addAttribute("srchType", srchType); model.addAttribute("srchWord", srchWord); retrun ""; // 리턴할 페이지(jsp파일 경로) }
*.jsp
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> // 이거 필수 추가 다른 태그들은 알아서 추가바랍니다. 예를 들면 jstl?정도 <ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage"/> <script type="text/javascript"> function linkPage(pageNo){ location.href = "/lecture?curPage="+pageNo+"&srchWord=${srchWord}&srchType=${srchType}"; } </script>
해당 코드들은 실무에서 진행중인 코드를 활용하여 작성된 코드입니다.
물론 개발서버에서 구현만 했을 뿐 실서버에서는 적용되지 않은 코드들입니다.
그리고 .java의 내용은 데이터들은 제외하고 오직 페이징만을 구현하기 위해 작성되었기 때문에
데이터는 직접 코드를 작성하여 구현하셔야합니다.
또한 www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:ptl:view:paginationtag를 참고하여 작성되었습니다.
이 글을 포스팅한 이유는 제가 늦게 참여해서 이미 커트텀되어 전자정부 원래의 코드들은 알지 못하여
기록용으로 작성합니다.
덤으로 처음, 마지막은 아직 구현하지 않았습니다.
추가적으로 작성하겠습니다.
'개발' 카테고리의 다른 글
build.gradle 백업용 (0) 2021.06.10 gradle 버전변경 (0) 2021.06.10 [PDO]PHP 단순조회 (0) 2021.01.19 [PDO]리스트 조회 (0) 2021.01.19 [PDO]데이터베이스 연결 (0) 2021.01.19