Este artículo describe el método de Struts2+Hibernate para implementar la paginación de datos. Compártelo para su referencia, como sigue:
1. Use Hibernate para implementar la tecnología de paginación:
/*** Use la instrucción HQL para la consulta de página* @param HQL HQL Declaración que debe ser consulta* @param Offset First Record Índice* @Param Número de registros que se mostrarán por página* @return Todos los registros de la página actual*/ @supresswarnings ("no verifeado") Lista pública FindBypage (Final String Hql, Final int -INT, INT POGAGEAGE) {QUERTADO ". HibernateCallback Lista de objetos = gethibernateTemplate () .ExCuteFind (new HibernateCallback () {// métodos que deben implementarse en la interfaz de interfaz de HibernateCallback de objeto público doinHibernate (sesión Session) lanza HibernateException, sqLException {// ejecutute HiBerNate Pagination Lista Queryer .setFirStresult (offset) .SetMaxResults (PageSize) .List (); Lista de retorno;} // Obtenga el número total de registros públicos int getrows (String hql) {return gethibernateTemplate (). find (hql) .size ();}2. Llame a Hibernate para implementar la tecnología de paginación en acción y saltar a la interfaz de visualización:
// Paging @SupessWarnings ("sin verificar") public String Paging () {String hql = "From Income"; // tabla de datos de paginación int pageSize = 3; // Número de registros que se muestran por página int allrows = servicio.getrows (HQL); // Total de registros int allPage = 0; // Páginas totales int offset = getPage () + 1; // índice del primer registro/*if (filas % size! = 0) {pageSize = filas/ size + 1; } else {pageSize = filas / size; }* / allPage = (Allrows - 1) / PageSize + 1; // Calcule el número total de páginas List <NUND> INGRESS = Service.FindByPage (HQL, (Offset-1)*PageSize, PageSize); request.setAttribute ("AllPage", AllPage); request.setAttribute ("offset", offset); request.SetAttribute ("Ingresos", Ingresos); devolver "Paging";}3. Struts.xml Configuración:
<Action name = "Incance"> <!-Configurar la página de vista para dos vistas lógicas-> <resultado name = "error">/error.jsp </resultado> <result name = "Paging">/Incuy/Incance_list.jsp </resultado> <resultado name = "update">/ingreso/ingreso_edit.jsp </sult>
4. Mostrar interfaz Income_list.jsp
<%@ page lenguaje = "java" pageEncoding = "gbk"%> <%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix = "s" uri = "/struts-tags"%> <! Doctype html prefix "-// w3c // dtd html 4.01 Transitional // en"> <head> <title> Lista de ingresos </title> <meta http-equiv = "pragma" content = "no-cache"> <meta http-equiv = "cache-control" content = "no-cache"> <meta htttp-equiv = "expires" expires "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" 0 "0" MetAry "0" MetAry ". http-equiv = "Keywords" Content = "Keyword1, Keyword2, Keyword3"> <meta http-equiv = "descripción" content = "Esta es mi página"> <link rel = "stylesheet" type = "text/css" href = "../ images/styles.css"> </head> <body> <viv> <pat cellpadding 0 "0" 0 "0" 0 "0" 0 "0". Align = "Center"> <tr> <TD> ・ Ubicación actual: Gestión de ingresos >> Ver Ingresos </td> </tr> <tr> <td bgcolor = "#ffffff"> <br> <table align = "Center" CellPadding = "1" CellPacing = "1" Bgcolor = "#036500" bgcolor = "#fffff"> <td align = "centro"> número de ingresos </td> <td align = "centro"> date </td> <td align = "centro"> método </td> <td align = "centro"> cantidad </td> <td align = "center"> proyecto </td> <td align = "Center" align = "Center"> align = "Center"> Personnel </td> <td align = "Center"> nota </td> <td align = "centro"> operación </td> </tr> <s: iterator value = "#request.income"> <trbcolor = "#fffffff"> <td align = "center"> <s valor de la propiedad valor = "id" align = "Center"> <s: date name = "date" format = "yyyy-mm-dd"/> </td> <td align = "centro"> <s: propiedad value = "dinero"/> </td> <td align = "centro"> <s: value de propiedad = "proyecto"/> </td> <td align = "center"> <s: value de propiedad = "origen"/"fuente" align = "Center"> <s: Property Value = "personal"/> </td> <td align = "Center"> <s: Property Value = "Observaciones"/> </td> <td Align = "Center"> <s: Property Value = "OBSERIZA $ {id}? ')) Ubicación =' Ingreso! Del? Id = $ {id} '"> Eliminar </a> <a href =" javascript: if (confirmar (' ¿Está seguro de que desea modificar $ {id}? ')) ubicación =' ingresos! updateto? id = $ {id} '"> modificar </a> </td> <</s> </s: iterator <Centente> Hay un total de páginas $ {allPage}, actualmente la página $ {offset} <a href = "ingreso! Paging? Page = 0"> <font size = "2" color = "azul"> casa </font> </a> <a href = "javascript: if ($ {offset}> 1) ubicación = 'ingreso? tamaño = "2" color = "rojo"> página anterior </font> </a> <a href = "javascript: if ($ {offset} <$ {allPage}) ubicación = 'ingreso! Paging? Page = $ {Page+1}'"> <font size = "2" color = "rojo"> siguiente página </font> </a> <a href = "ingreso! Paging? Page = $ {AllPage-1}"> <font size = "2" color = "azul"> Última página </font> </a> </td> </tr> </table> </div> </body>5. Resultados de la paginación:
Este artículo no proporciona implementaciones en la base de datos subyacente, pero mientras domines el principio de paginación, creo que este no es un gran problema. Para principios específicos de paginación, consulte el artículo anterior: "Análisis de los ejemplos de tecnología de paginación de datos marco de hibernación"
Espero que la descripción en este artículo sea útil para la programación Java de todos en función del marco Hibernate.