Este artigo descreve o método de Struts2+hiberna para implementar a paginação de dados. Compartilhe -o para sua referência, como segue:
1. Use o Hibernate para implementar a tecnologia de paginação:
/*** Use hql statement for page query* @param hql hql statement that needs to be query* @param offset first record index* @param pageSize Number of records to be displayed per page* @return All records of the current page*/@SuppressWarnings("unchecked")public List findByPage(final String hql,final int offset, final int pageSize){ //Execute query through a Lista de objetos de Hibernatecallback = GethibernateTemplate () .ExecuteFind (new Hibernatecallback () {// Métodos que devem ser implementados na interface Hibernatecallbackback Public Object doinhibte (Sessão) lança hibernateException, sqLexception {// Executo Hibernate Hibernate (Sessão) lança HibernateException, sqlexception {// Execute hibernate (Hibernate Hibernate) .Setfirstresult (deslocamento) .SetMaxResults (PageSize) .list (); Lista de retorno;} // Obtenha o número total de registros public int getRows (String HQL) {return gethibernatetemplate (). find (hql) .size ();}2. Ligue para o Hibernate para implementar a tecnologia de paginação em ação e pule para a interface de exibição:
// paging @suppresswarnings ("desmarcado") public string paging () {string hql = "da renda"; // tabela de dados de paginação int PAGESize = 3; // número de registros exibidos por página int allRows = service.getRows (HQL); // Total Records int AllPage = 0; // Páginas totais int offset = getPage () + 1; // índice do primeiro registro/*if (linhas % tamanho! = 0) {Pagesize = linhas/ tamanho + 1; } else {Pagesize = linhas / tamanho; }* / allPage = (AllRows - 1) / Pagesize + 1; // Calcule o número total de páginas list <crenty> = service.findbypage (HQL, (Offset-1)*PageSize, Pagesize); request.setattribute ("AllPage", AllPage); request.setAttribute ("deslocamento", deslocamento); request.setattribute ("renda", renda); Retornar "Paging";}3.Struts.xml Configuração:
<ação name = "renda"> <!-Configure a página de visualização para duas visualizações lógicas-> <resultado name = "error">/error.jsp </resultado> <resultado name = "paging">/rendimento/rendimento_list.jsp </resultado> <resultado name = "update">/renda /_edit.jsp </resultado>
4. Exibir interface renda_list.jsp
<%@ Page Language = "Java" PageEncoding = "GBK"%> <%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix = "S" uri = "/struts-tags" "-//W3C//DTD HTML 4.01 Transitional//EN"><head> <title>Revenue List</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <link rel="stylesheet" type="text/css" href="../images/styles.css"></head><body> <div> <table cellpadding="0" cellpacing="0" align = "Center"> <tr> <td> ・ Localização atual: Gerenciamento de receita >> Veja a receita </td> </tr> <tr> <td bgcolor = "#fffff"> <br> <tabela align = "Center" CellPadding = "1" Cellaping = "1" BGCOLOR = "#03665" bgcolor = "#fffff"> <td align = "center"> número de renda </td> <td align = "center"> date </td> <td align = "center"> método </td> <td align = "center"> quantidade </td> <td align = "center"> Projeto </td> align = "Center"> align = "Center"> pessoal </td> <td align = "center"> note </td> <td align = "center"> operação </td> </tr> <s: iteter value = "#request.income"> <triccolor = "#fffff"> <tignl = " align = "Center"> <s: name date = "date" format = "yyyy-mm-dd"/> </td> <td align = "Center"> <s: Property Value = "Money"/> </td> <td align = "Center"> <s: Property Value = "Project S: </td> <td align =" Center ">: align = "Center"> <S: Property Value = "pessoal"/> </td> <td align = "Center"> <s: Property value = "observações"/> </td> <td align = "Center"> <s: value) $ {id}? ')) Localização =' renda! del? Id = $ {id} '"> excluir </a> <a href =" javascript: if (confirm (' tem certeza que deseja modificar $ {id}? ')) localização =' renda! UpdateTo? Id = $ {id} '"> Modify?'))) <Center> Há um total de páginas $ {AllPage}, atualmente o $ {offset} página <a href = "rendimento! Paging? Page = 0"> <font size = "2" color = "azul"> home </font> </a> <a href = "javascript: if ($ {offset}> 1) location =" size = "2" color = "Red"> página anterior </font> </a> <a href = "javascript: if ($ {offset} <$ {allPage}) location = 'renda! paging? Page = $ {Page+1}' '> <font size =" 2 "color =" Red "> próximo href = "renda! paging? Page = $ {allPage-1}"> <font size = "2" color = "blue"> última página </font> </a> </td> </tr> </tabela </div> </body>5. Resultados da paginação:
Este artigo não fornece implementações no banco de dados subjacente, mas, desde que você domine o princípio da paginação, acredito que isso não seja um grande problema. Para princípios específicos de paginação, consulte o artigo anterior: "Análise dos exemplos de tecnologia da Paging Paging Paging Paging Hibernate Data"
Espero que a descrição deste artigo seja útil para a programação Java de todos com base na estrutura do Hibernate.