SpringMVC+Hibernate se ha convertido en una integración marco que muchas personas usan ahora. Recientemente, he estado aprendiendo y explorando. Dado que muchos proyectos en los proyectos de desarrollo utilizan la función de paginación de la lista, aquí nos referimos a alguna información en Internet, y usamos SpringMVC4+HIBNERATE4 para resumir mientras la aprendemos y resumimos, y para obtener el código de función de paginación. Aunque no es necesariamente universal, es de valor de referencia para principiantes.
El proceso básico de implementación de la paginación:
1. Categoría de herramienta de paginación
Ideas:
1. Escriba una clase de página y defina atributos, que deben incluir: conjunto de resultados de consulta, registros de consulta en total, visualizar registros por página, página actual y otros atributos.
2. Escriba la clase de página y defina el método, que debe incluir: número total de páginas, iniciar la grabación de la página actual, página de inicio, página siguiente, página anterior, última página y otros métodos
El código es el siguiente:
paquete cn.myic.model; import java.util.list; página de clase pública <E> {// Results set private list <E> list; // Número total de registros de consultas private int totalRecords; // cuántos registros por página private int PageSize; // ¿Qué página private int pageno; /*** @return Número total de páginas**/public int getTotalPages () {return (TotalRecords+PageSize-1)/PageSize; } / *** Calcule el registro de inicio de la página actual* @param Número de registros de páginas por página* @param CurrentPage ¿Qué página es actualmente* @return Número de registro de inicio actual* / public int countOffSet (int curtentPage, int pagesize) {int offset = pageSize* (currentPage-1); desplazamiento de retorno; } / *** @return página de inicio** / public int getToppageno () {return 1; } / *** @return página anterior** / public int getPreviousPageno () {if (pageno <= 1) {return 1; } return Pageno-1; } / *** @return página siguiente** / public int getNextPageno () {if (pageno> = getBottompageno ()) {return getBottompageno (); } return Pageno+1; } / *** @return Última página** / public int getBottompageno () {return getTotalPages (); } Lista pública <E> getList () {Lista de retorno; } 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 págsagesize) {this.pagesize = pageSize; } public int getPageno () {return pageno; } public void setPageno (int pageno) {this.pageno = pageno; }} 2. Método de capa
Idea: Defina un método de consulta de paginación, establezca parámetros: cuando el número de página y cuántos registros se muestran en cada página
El código es el siguiente:
/ *** consulta de paginación* @param HQL Condiciones de consulta* @param Offset Inicio de grabación* @param Longitud Consulta Varios registros a la vez* @return devuelve la colección de registros de consulta*/ @supesswarnings ("sin verificar") @Override public Public List <cutor> QueryForPage (int offset, int intente {Query Query = getSession (). CreateQuery ("desde el curso"); query.setFirStresult (offset); query.setMaxResults (longitud); entityList = query.list (); } catch (runtimeException re) {lanzar re; } return entityList; } 3. Método de capa de servicio
Ideas:
1. Defina un método de consulta de paginación y establece parámetros: cuando el número de página y cuántos registros se muestran en cada página, el objeto de paginación (página) que devuelve el resultado de la consulta
2. A través de la capa DAO, obtenga el número total de registros de la entidad de consulta
3. Obtenga el número de registros que comienzan en la página actual
4. A través de la capa DAO, obtenga el conjunto de resultados de la consulta de paginación
5. Establecer en el objeto de página
El código es el siguiente:
/ *** Consulta de paginación* @param CurrentPage Número de página actual: el número de páginas que se muestran ahora* @param Número de páginas Número de registros que se muestran por página* @return bean que encierra la información de paginación (incluida la lista de registros establecidos)**/ @SupessWarnings ("no verificado") @Override public Página consulta de la página (intencionPage, int PageSize) {/////////////////////////////////////////// Automato Página de stub = nueva página (); // Número total de registros int // La página actual comienza a grabar int offset = page.countOffset (currentPage, pageSize); // Pagination Consulting Result Set List <Curtar> list = CoursedAo.QueryForPage (Offset, PageSize); Page.SetPageno (CurrentPage); Page.SetPageSize (PageSize); Page.settotalRecords (AllRow); Page.setList (lista); página de regreso; } 4. Método de capa de controlador
El diseño de la capa del controlador, al operar la consulta de giro de la página, solo necesita pasar el parámetro de número de página actual.
El código es el siguiente:
@RequestMapping (valor = "/showall.do") Cadena pública FindAllCourse (HttpServletRequest solicitud, respuesta httpServletResponse) {try {String pageno = request.getParameter ("pageno"); if (pageno == null) {pageno = "1"; } Página página = cursSeService.QueryForPage (integer.valueOf (pageno), 10); request.setAttribute ("página", página); List <curse> curso = page.getList (); request.setAttribute ("cursos", curso); } catch (Exception e) {E.PrintStackTrace (); } return "curso/curso_list"; } 5. Ver pantalla JSP de capa
Varios botones para las páginas de Paging JSP se muestran de acuerdo con el juicio del número de página actual.
El código es el siguiente:
<td colspan = "6" align = "centro" bgcolor = "#5ba8de"> total $ {page.totalrecords} Recordstotal $ {page.totalpages} la página actual <br> <a href = "$ {path} /course/showall.do?pageno = $ {Page.toppagen type = "Button" name = "fristPage" value = "home"/> </a> <c: elegir> <c: when test = "$ {page.pageno! = 1}"> <a href = "$ {path} /course/showall.doal Página "/> </a> </c: When> <c: lo contrario> <input type =" Button "Disabled =" Disabled "name =" anteriorPage "valor =" página anterior "/> </c: lo contrario> </c: elegir> <c: elegir> <c: when test =" $ {page.pageno! = page.totalpages} "> <a href="${path}/course/showAll.do?pageNo=${page.nextPageNo }"><input type="button" name="nextPage" value="nextpage" /></a> </c:when> <c:otherwise> <input type="button" disabled="disabled" name="nextPage" value="nextPage" /> </c:otherwise> </c: elegir> <a href = "$ {path} /course/showall.do?pageno = $ {page.bottompageno}"> <input type = "button" name = "LastPage" Value = "Last Page"/> </a> </td> </tr> </tr>Efecto de la página:
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.