SpringMVC+Hibernate는 많은 사람들이 현재 사용하는 프레임 워크 통합이되었습니다. 최근에 저는 배우고 탐구했습니다. 개발 프로젝트의 많은 프로젝트는 목록 페이징 기능을 사용하기 때문에 여기서는 인터넷의 일부 정보를 참조하고 SpringMVC4+Hibnerate4를 사용하여 학습 및 요약을하면서 요약하고 페이징 기능 코드를 얻습니다. 반드시 보편적 인 것은 아니지만 초보자에게는 참조 가치입니다.
페이지 매김 구현의 기본 프로세스 :
1. Pagination 도구 범주
아이디어 :
1. 페이지 클래스를 작성하고 속성을 정의하십시오. 쿼리 결과 세트, 쿼리 레코드 총, 페이지 당 표시, 현재 페이지 및 기타 속성이 포함되어야합니다.
2. 페이지 클래스를 작성하고 다음을 포함 해야하는 메소드를 정의합니다.
코드는 다음과 같습니다.
패키지 cn.myic.model; import java.util.list; public class page <e> {// 결과 세트 개인 목록 <e> 목록; // 총 쿼리 레코드 수 개인 int totalrecords; // 페이지 당 얼마나 많은 레코드가 개인 int pageize; // 어떤 페이지 프라이빗 int pageno; /*** @return 총 페이지 수**/public int getTotalPages () {return (TotalRecords+Pagesize-1)/pagesize; } / *** 현재 페이지 시작 레코드 계산* @param pages 페이지 당 레코드 수명* @param currentpage 현재 페이지가 현재* @return 현재 페이지 시작 기록* / public int countoffset (int currentPage, int pagesize) {int offset = pagesize* (currentPage-1); 오프셋 리턴; } / *** @return 홈페이지** / public int getToppageno () {return 1; } / *** @return 이전 페이지** / public int getPreviousPageno () {if (pageno <= 1) {return 1; } 반환 pageno-1; } / *** @return 다음 페이지** / public int getnextpageno () {if (pageno> = getBottompageno ()) {return getBottompageno (); } return pageno+1; } / *** @return 마지막 페이지** / public int getBottompageno () {return getTotalPages (); } 공개 목록 <E> getList () {반환 목록; } public void setList (list <e> list) {this.list = list; } public int getTotalRecords () {return totalrecords; } public void settotalRecords (int totalrecords) {this.totalRecords = TotalRecords; } public int getPagesize () {return pagesize; } public void setPagesize (int pagesize) {this.pagesize = pagesize; } public int getPageno () {return pageno; } public void setpageno (int pageno) {this.pageno = pageno; }} 2. 레이어 방법
아이디어 : Pagination 쿼리 메소드 정의, 매개 변수 설정 : 페이지 번호와 각 페이지에 표시되는 레코드 수를 설정합니다.
코드는 다음과 같습니다.
/ *** Pagination Query* @param hql query 조건* @param 오프셋 시작 녹화* @param 길이 쿼리 한 번에 여러 레코드를 반환*/ @suppresswarnings ( "선택되지 않은") @override public list <course> queryforpage (int offset, int length) {// auto-genderated method <course; try {query query = getsession (). createquery ( "Course"); query.setfirstresult (오프셋); query.setMaxResults (길이); entityList = query.list (); } catch (runtimeexception re) {throw re; } return entityList; } 3. 서비스 계층 방법
아이디어 :
1. Pagination 쿼리 메소드 정의 및 매개 변수 설정 : 페이지 번호와 각 페이지에 표시되는 레코드 수, 쿼리 결과를 반환하는 Pagination Object (페이지).
2. DAO 계층을 통해 쿼리 엔티티의 총 레코드 수를 얻으십시오.
3. 현재 페이지에서 시작하는 레코드 수 받기
4. DAO 레이어를 통해 Pagination Query 결과 세트를 가져옵니다.
5. 페이지 객체로 설정하십시오
코드는 다음과 같습니다.
/ *** Pagination Query* @param currentpage 현재 페이지 번호 : 지금 표시된 페이지 수* @param pages 페이지 당 표시되는 레코드 수치* @return bean pagination bean (레코드 세트 목록 포함)*/ @suppresswarnings ( "Checked") @override public page queryforpage (int pages int pages) 페이지 (); // 총 레코드 수 int allrow = coursedao.getallrowcount (); // 현재 페이지는 int offset = page.countOffset (curttPage, pagesize)을 녹음하기 시작합니다. // Pagination Query 결과 세트 목록 <course> list = coursedao.queryforpage (오프셋, pagesize); page.setpageno (currentpage); page.setpagesize (pagesize); page.settotalrecords (allrow); page.setList (list); 반환 페이지; }
4. 컨트롤러 계층 방법
컨트롤러 계층의 설계는 페이지를 작동 할 때 쿼리를 작동시킬 때 현재 페이지 번호 매개 변수 만 전달하면됩니다.
코드는 다음과 같습니다.
@RequestMapping (value = "/showall.do") public String findAllCourse (httpservletRequest 요청, httpservletResponse 응답) {try {string pageno = request.getParameter ( "pageno"); if (pageno == null) {pageno = "1"; } page page = courseservice.queryforpage (integer.valueof (pageno), 10); request.setAttribute ( "page", page); List <course> course = page.getList (); request.setAttribute ( "코스", 코스); } catch (예외 e) {e.printstacktrace (); } return "course/course_list"; } 5. 레이어 JSP 디스플레이를 봅니다
페이징 JSP 페이지의 여러 버튼이 현재 페이지 번호의 판단에 따라 표시됩니다.
코드는 다음과 같습니다.
<td colspan = "6"align = "center"bgcolor = "#5ba8de"> Total $ {page.totalRecords} recordStotal $ {page.totalPages} 현재 페이지 <br> <a href = "$ {path} /course/showall.do? type = "button"= "fristpage"value = "home"/</a> <c : 선택> <c : test = "$ {page.pageno! = 1}"> <a href = "$ {path} /course/showall.do?pageno = $ {page.previouspageno}"> in propecte = "" "" "" "" "" "" "" "" "" "" /> </a> </c : 언제> <c : 그렇지 않으면> <입력 유형 = "버튼"버튼 "disabled ="disabled "name ="previouspage "value ="previous page "/> </c : elide> </c : 선택> <c : test ="$ {page.pageno! = page.totalPages} "> <a href = "$ {path} /course/showall.do ??pageno = $ {page.nextpageno}"> <입력 유형 = "button"nextPage "value ="NextPage "/> </a> </c : <c : elextpage"realtpage ""> c : "> c :"> c : <nextpage ">. </c : 선택> <a href = "$ {path} /course/showall.do?pageno = $ {page.bottompageno}"> <input type = "button"name = "lastpage"value = "마지막 페이지"/> </a> </a> </a>페이지 효과 :
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.