Toggle theme
문제를 잘 정의하는 것은 문제를 절반 해결한 것이다. - 2023.12
사용자 도구
Toggle theme
로그인
사이트 도구
검색
도구
문서 보기
이전 판
PDF로 내보내기
Fold/unfold all
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
현재 위치:
start
»
wiki
»
miscellaneous
»
전자정부표준프레임워크_페이징처리
wiki:miscellaneous:전자정부표준프레임워크_페이징처리
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== 전자정부표준프레임워크 페이징 처리 ====== <WRAP left notice 80%> * description : 전자정부표준프레임워크 페이징 처리 * author : 오션 * email : shlim@repia.com * lastupdate : 2022-09-01 </WRAP> <WRAP clear></WRAP> \\ ====== 전자정부표준프레임워크 페이징 처리 ====== ==== PaginationInfo.class ==== <code java> public class PaginationInfo { /** * Required Fields * - 이 필드들은 페이징 계산을 위해 반드시 입력되어야 하는 필드 값들이다. * * currentPageNo : 현재 페이지 번호 * recordCountPerPage : 한 페이지당 게시되는 게시물 건 수 * pageSize : 페이지 리스트에 게시되는 페이지 건수, * totalRecordCount : 전체 게시물 건 수. */ private int currentPageNo; private int recordCountPerPage; private int pageSize; private int totalRecordCount; /** * Not Required Fields * - 이 필드들은 Required Fields 값을 바탕으로 계산해서 정해지는 필드 값이다. * * totalPageCount: 페이지 개수 * firstPageNoOnPageList : 페이지 리스트의 첫 페이지 번호 * lastPageNoOnPageList : 페이지 리스트의 마지막 페이지 번호 * firstRecordIndex : 페이징 SQL의 조건절에 사용되는 시작 rownum. * lastRecordIndex : 페이징 SQL의 조건절에 사용되는 마지막 rownum. */ private int totalPageCount; private int firstPageNoOnPageList; private int lastPageNoOnPageList; private int firstRecordIndex; private int lastRecordIndex; </code> \\ ==== SearchVO.java ==== <code java> public class SearchVO implements Serializable { ... /** 검색조건 */ private String searchCondition = ""; /** 검색Keyword */ private String searchKeyword = ""; /** 검색사용여부 */ private String searchUseYn = ""; /** 검색조건 */ private String searchCnd = ""; /** 현재페이지 */ private int pageIndex = 1; /** 페이지갯수 */ /* 한 페이지에 표시되는 게시물 건수(가로 행 rows의 개수) */ private int pageUnit = 10; /** 페이지사이즈 */ /* 페이징에 표시되는 번호들의 개수를 지정 */ private int pageSize = 10; /** firstIndex */ private int firstIndex = 1; /** lastIndex */ private int lastIndex = 1; /** recordCountPerPage */ /* 하나의 페이지 당 게시되는 게시물 수(가로 행 rows의 개수) */ private int recordCountPerPage = 10; </code> \\ ==== Example ==== 테이블에 등록된 가로 행 rows(데이터)의 총 개수가 21개인 경우,\\ <code java> PaginationInfo paginationInfo = new PaginationInfo(); /* 현재 페이지 번호를 저장*/ paginationInfo.setCurrentPageNo(projMngVO.getPageIndex()); /* 1개의 페이지에 표시되는 등록된 Repia 진행 프로젝트의 개수 */ paginationInfo.setRecordCountPerPage(5); // projMngVO.getPageUnit() /* 페이징에 표시되는 번호들의 개수를 3개로 지정 */ /* 1,2,3이 보이고, Next버튼 클릭하면 4,5 만 보임 - 등록된 진행프로젝트 개수가 21개인 경우 */ paginationInfo.setPageSize(3); </code> \\ 테이블에 등록된 가로 행 rows(데이터)의 총 개수 : 21개\\ 하나의 페이지 당 표시되는 가로 행 rows(데이터)의 개수 : 5개\\ 페이징에 표시되는 번호들의 개수 : 3개\\ \\ firstRecordIndex = (현재 페이지 번호 - 1) * 하나의 페이지 당 표시되는 가로 행 rows의 개수\\ --> 현재 페이지가 4페이지인 경우 : firstRecordIndex = (4-1) * 5 = 15\\ \\ lastRecordIndex = 현재 페이지 번호 * 하나의 페이지 당 표시되는 가로 행 rows의 개수\\ --> lastRecordIndex = 4 * 5 = 20\\ \\ === sql.xml ==== <code sql> ... FROM table_name LIMIT #{recordCountPerPage} OFFSET #{firstIndex} </select> </code> \\ sql의 LIMIT clause의\\ LIMIT #{recordCountPerPage}에는 recordCountPerPage = 5가 입력됨\\ OFFSET #{firstIndex}에는 firstRecordIndex = 15가 입력됨\\ \\ 현재 위치한 4페이지에, OFFSET clause에 따라서 16번째의 데이터부터 5개(16~20)를 순서대로 삽입\\ === 결과 화면 === {{:wiki:miscellaneous:페이징01.png?600|페이징01}} {{:wiki:miscellaneous:페이징02.png?600|페이징02}} ==== Ref LInk ==== [[https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:ptl:view:paginationtag|페이징처리]] \\ {{tag> 오션 전자정부표준프레임워크 페이징처리}}
/volume1/web/dokuwiki/data/pages/wiki/miscellaneous/전자정부표준프레임워크_페이징처리.txt
· 마지막으로 수정됨: 2023/01/13 18:44 (바깥 편집)
문서 도구
문서 보기
이전 판
역링크
PDF로 내보내기
Fold/unfold all
맨 위로