Cet article décrit la méthode de Struts2 + Hibernate pour implémenter la pagination de données. Partagez-le pour votre référence, comme suit:
1. Utilisez Hibernate pour mettre en œuvre la technologie de pagination:
/ *** Utilisez une instruction HQL pour la requête de page * @Param HQL HQL Instruction qui doit être requête * @param offset First Record Index * @param PageSize Nombre of Records à afficher par page * @return Tous les enregistrements de la page actuelle * / @ SuppressWarnings ("Unchecked") public list findByPage (final string hql, final Int offset, final int pages HiberNateCallback Object List List = GETHIBERNATETÉTÉ () .EXECUTEFIND (Nouveau HiberNateCallback () {// Méthodes qui doivent être implémentées dans l'objet public HiberNateCallback DoinHiberNate (Session Session) lance HiberNateException, Sqlexception {// Exécuter HiberNate Pagination Query List Résultat Résultat = Session.createeQuy (hql) .setFirStResult (offset) .setMaxResults (PageSize) .List (); Retour List;} // Obtenez le nombre total de dossiers public int Getrows (String HQL) {return GETHIBERNATETÉTÉ (). Find (HQL) .size ();}2. Appelez Hibernate pour implémenter la technologie de pagination en action et sauter à l'interface d'affichage:
// PAGINY @SUPPRESSWARNings ("Unchecked") public String Paging () {String hql = "From revenu"; // Tableau de données de pagination int pagesize = 3; // Nombre d'enregistrements affichés par page int allRows = Service.Getrows (HQL); // Total Records int allPage = 0; // Total Pages int offset = getPage () + 1; // Index du premier enregistrement / * if (lignes% taille! = 0) {pagesize = lignes / taille + 1; } else {pagesize = lignes / taille; } * / allPage = (allRows - 1) / pagesize + 1; // Calculez le nombre total de pages Liste <ventement> revenu = service.FindByPage (HQL, (Offset-1) * PageSize, PageSize); request.setAttribute ("allPage", allPage); request.setAttribute ("offset", offset); request.setAttribute ("revenu", revenu); retourner "pagination";}3.strut.xml Configuration:
<action name = "revenu"> <! - Configurer la page de vue pour deux vues logiques -> <result name = "error"> / error.jsp </ result> <result name = "paging"> / revenu / revenu_list.jsp </ résultat> <résultat name = "update"> / revenu / revenu_edit.jsp </sult>
4. Afficher l'interface revenu_list.jsp
<% @ page Language = "Java" pageEncoding = "gbk"%> <% @ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt"%> <% @ taglib prefix = "s" uri = "/ strutts-tags"%> <! Doctype html public public "- // w3c // dtd html 4.01 transitional // en"> <éadf> <itle> list des revenus </tapie> <méta http-equiv = "pragma" contenu = "non-cache"> <méta http-equiv = "cache-control" contenu = "non-cache"> <méta http-equie http-equiv = "keywords" contenu = "keyword1, keyword2, keyword3"> <meta http-equiv = "Description" content = "Ceci est ma page"> <link rel = "stylesheet" type = "text / css" href = "../ images / styles.css"> </ gâchis> Align = "Center"> <Tr> <Td> ・ Emplacement actuel: Management des revenus >> Afficher les revenus </td> </tr> <tr> <td bgcolor = "# ffffff"> <br> <table align = "Center" CellPadding = "1" Cellpacing = "1" BGCOLOR = "# 036500" BorderColor = "# fffff"> <Trans bgcolor = "# fffff"> <td align = "Center"> Numéro de revenu </td> <td align = "Center"> Date </td> <td Align = "Center"> Méthode </td> <td Align = "Center"> Montant </ TD> <TD Align = "Center"> Projet </td> <TD ALIGN = "CENTER"> Source> <TD> Align = "Center"> Align = "Center"> Personnel </td> <td Align = "Center"> Remarque </TD> <TD Align = "Center"> Opération </TD> </tr> <S: ITERATOR VALUE = "# request.income"> <tr bgcolor = "# ffffff"> <td Align = "Center"> <s: Property Value = "ID"> <td Align = "Center"> <s: Property Value = "Id"> <td Align = "Center"> <s: Property Value = "Id"> <TD Align = "Center"> <s: Property Value = "ID"> <td Align = "Center"> <s: Property Value = "Id"> <Td Align = "Center"> <s: Property Value = "ID"> <TD ALIGN = " Align = "Center"> <S: Date Name = "Date" format = "Yyyy-mm-dd" /> </td> <td align = "Center"> <S: Property Value = "Money" /> </td> <td align = "Center"> <S: Property Value = "Project" /> </td> <td Align = "Center"> <s: Property Value = "Source" /> <td Align = "Center"> <s: Property Value) Align = "Center"> <S: Property Value = "Personnel" /> </td> <td Align = "Center"> <S: Property Value = "Remarks" /> </ td> <td Align = "Center"> <S: Property Value = "Remarks" /> </ td> <td align = "Center"> <a href = "javascrip $ {id}? ')) localisation =' revenu! del? id = $ {id} '"> supprimer </a> <a href =" javascript: if (confirm (' êtes-vous sûr de vouloir modifier $ {id}? ')) Location =' revenu! upteto? id = $ {id} ''> motifie </a> </ / td> <centre> Il y a un total de pages $ {allPage}, actuellement la page $ {offset} <a href = "revenu! Paging? Page = 0"> <font size = "2" color = "bleu"> home </font> </a> <a href = "javascript: if ($ {offset}> 1) emplacement = 'revenu! PAGING? PAGAGE? PAGE = $ {" "> <font) PLACEM size = "2" color = "red"> page précédente </font> </a> <a href = "javascript: if ($ {offset} <$ {allPage}) location = 'revenu! Paging? Page = $ {page + 1}'"> <font size = "2" color = "Red"> Page suivante </font> </a> href = "revenu! Paging? Page = $ {allPage-1}"> <font size = "2" color = "bleu"> Dernière page </font> </a> </td> </tr> </ table> </v> </ody>5. Résultats de la pagination:
Cet article ne fournit pas d'implémentations dans la base de données sous-jacente, mais tant que vous maîtrisez le principe de la pagination, je pense que ce n'est pas un gros problème. Pour des principes de pagination spécifiques, veuillez vous référer à l'article précédent: "Analyse des exemples de technologie de pagination de données Hibernate Framework"
J'espère que la description de cet article sera utile à la programmation Java de chacun basée sur le cadre d'hibernate.