La paginación debe ser un trabajo que a menudo hacemos al desarrollar aplicaciones web. Es muy importante poder implementar la paginación de bases de datos y ver capas de una manera relativamente simple.
En la capa de base de datos, use Hibernate para paginar la base de datos y encapsule los datos consultados de la base de datos a Javabeans; En la capa de vista, la paginación se puede implementar fácilmente.
Crea PageBean
paquete com.fishing.common.bean; import java.util.list; @SupessWarnings ("sin control") clase pública PageBean {Lista de lista privada; // Lista de registros que se devuelven private int allrow; // Total Records Private Int TotalPage; // Páginas totales privadas int curtentPage; // Página actual Private Int PageSize; // Número de registros por página Boolean ISFirstPage; // si es la primera página ISlastPage privado booleano; // si se trata de la última página HASPreviousPage privado booleano; // ¿Hay una página anterior Boolean HasnextPage privada; // ¿Hay una página siguiente de la página siguiente getList () {return List; } public void setList (list list) {this.list = list; } public int getAllrow () {return AllRow; } public void setallrow (int allrow) {this.allrow = allrow; } public int getTotalPage () {return TotalPage; } public void settotalPage (int totalpage) {this.totalPage = totalPage; } public int getCurrentPage () {return currentPage; } public void setCurrentPage (int currentPage) {this.currentPage = currentPage; } public int getPageSize () {return PageSize; } public void setPageSize (int págsagesize) {this.pagesize = pageSize; } / *** / / ***Inicialización Información de paginación* / public void init () {this.isfirstPage = isFirstPage (); this.isLastPage = islastPage (); this.haspreviousPage = isHaspreviousPage (); this.hasnextPage = ishasNextPage (); }/ ** *// ** * Lo siguiente para juzgar la información de la página, Just Getter Method (IS Method) * * * @return */ public boolean isFirstPage () {return (currentPage == 1); // Si la página actual es la primera página} public boolean islastPage () {returnPage == TotalPage; // Si la página actual es la última página} public boolean ishaspreviousPage () {return currentPage! = 1; // Mientras la página actual no sea la primera página} public boolean ishasnextPage () {return currentPage! = TotalPage; // siempre que la página actual no sea la última página}/***///*** calcule el número total de páginas, un método estático, y el exterior llame directamente a través del nombre de clase** @Param Pagesize* Número de registros por página* @Param Allrow* Total Records* @ret Total Pages*/PublicTaltalTalpage PageSize == 0? AllRow / Pagesize: AllRow / Pagesize + 1; devolver total Page; } / *** / / *** Calcule el registro de inicio de la página actual** @param PageSize* Número de registros por página* @param CurrentPage* Página actual* @return Página actual El número de registro de inicio* / public static int countOffset (final int PAGESIZE, final int curtentPage) {final int offet = PageSize* (Página actual - 1); desplazamiento de retorno; } /*** / /*** Calcule la página actual. Si es 0 o no hay "? Page =" En la URL solicitada, entonces 1 se usa en su lugar * * @param página * El parámetro aprobado (tal vez vacío, es decir, 0, entonces 1 se devolverá) * @return Página actual */ public int countCurrentPage (int Page) {final int curpage = (página == 0? 1: página); Devolver el currpage; }} Agregar métodos a la interfaz abstracta de DAO a base de la interfaz:
Public List QueryForPage (final de cadena HQL, final de compensación int, longitud final int); Método de implementación en la clase de implementación de DAO JiansshedwdaooMpl Public List QueryForPage (final String HQL, final int offset, final int long) {list list = gethibernateTemplate (). ExecUteFind (nuevo HibernateCallback () {Public Object DoinHibernate (Session Session) lanza HiBernateException, sqlexception {query query = = query = query = = query = query = = query = query = QUERY = QUERY = QUERY = Session.CreateChory (HQL); lista de devolución; } Agregue métodos a la interfaz de capa de abstracción de servicio Jianshedwservice:
Public PageBean QueryForPage (int PageSize, int currentPage);
Implementar métodos en la clase de implementación del servicio:
Public PageBean QUERYFORPAGE (int págsagesize, int página) {String final hql = "de JiansshedwBean"; // Declaración de consulta int allrow = this.basedAo.getallRowCount (HQL); // Total Registros int TotalPage = PageBean.CountTotalPage (PageSize, AllRow); // Total Páginas finales int offset = PageBean.countOffset (PageSize, Page); // La página actual comienza a grabar la longitud final intent = pageSize; // Número de registros por página Final int curtPage = PageBean.CountCurrentPage (página); List <Jiansshedwbean> list = this.basedAo.QueryForPage (HQL, Offset, Longitud); // registro de "una página" // Guardar la información de paginación en el bean PageBean PageBean = new PageBean (); PageBean.SetPageSize (PageSize); PageBean.SetCurrentPage (CurrentPage); PageBean.SetallRow (AllRow); PageBean.SettotalPage (TotalPage); PageBean.setList (Lista); PageBean.init (); regresar PageBean; } Cree un modelo de paginación en la acción de la capa de vista
paquete com.fishing.action.lcq; import com.fishing.common.bean.jianshedwbean; import com.fishing.common.bean.pagebean; import com.fishing.service.lcq.jianshedwservice; import com.opensymphony.xwork2.ActionSupport; @SupessWarnings ("Serial") Clase pública GetInfoJSDWListaction extiende ActionSupport {private int página; // Qué página PageBean PageBean privada; // Bean que contiene información de distribución Privado Jianshedwbean Jiansshedwbean; // página privada de página; Jianshedwservice privado Jianshedwservice; public int getPage () {Página de retorno; } public void setPage (int página) {this.page = page; } public PageBean getPagebean () {return PageBean; } public void setPagebean (PageBean PageBean) {this.Pagebean = PageBean; } public Jiansshedwbean getJiAnshedwBean () {return jiansshedwbean; } public void setJiAnshedwbean (Jiansshedwbean Jiansshedwbean) {this.jiansshedwbean = jianshedwbean; } public Jiansshedwservice getJiAnshedwservice () {return jianshedwservice; } public void setJiAnshedwservice (Jiansshedwservice Jiansshedwservice) {this.JiAnshedwservice = Jiansshedwservice; } @Override public String Execute () lanza Exception {// La página de la página, el parámetro páginas de la página indica el número de registros que se muestran por página, la página es la página actual this.pagebean = jianshedwservice.queryForPage (10, página); devolver el éxito; }} Escribe una página en JSP
<tr> <td> </td> <td> <s: if test = "%{PageBean.CurrentPage == 1}"> Inicio Página anterior </s: if> <s: else> <a href = "jianguguan/getJsdwinfos.action? Page = 1"> HOME </A> <A href = "jiangguan/getjsdwinfos.action? Page = <s: Property value ="%{pageBean.CurrentPage-1} "/>"/> página anterior </a> </s: else> </td> <td> <s: if = "%{pageBean.CurrentPage! = PageBean.totalpage}" href = "jiangguan/getJsdwinfos.action? Page = <s: Property value ="%{PageBean.CurrentPage+1} "/>"> Página siguiente </a> <a href = "jiangguan/getJsdwinfos.action? <s: else> próxima página de pagelast </s: else> </td> <td> <div align = "centro"> página <s: propiedad value = "pageBean.currentPage"/>/<s: propiedad valor = "pageBean.totalPage"/> <s: value de propiedad = "pageBean.allrow"/> registra </iv> <iv> </"Centre" </Divi </td> </tr> Lo anterior es solo una implementación del código, y no explica el archivo de configuración, y el lector lo configura de acuerdo con la situación.
Espero que este artículo te sea útil. Todo esto es para que usted introduzca el contenido de paginación de la implementación de SSH2 de la base de datos y la interfaz. ¡Espero que todos continúen siguiendo nuestro sitio web! Si desea aprender Java, puede continuar siguiendo este sitio web.