J'utilise displaytag 1.0 dans mon application de base Struts. J'ai 5 millions de lignes à montrer des rapports de toutes les données de rangées en paginant avec 50 dossiers. Cela prend 5 minutes pour rendre les données. Pouvons-nous réduire celui-ci? S'il vous plaît suggérer comment le faire avec en une minute.lent Rendu des données dans la table en utilisant la balise d'affichage liabrery
Répondre
Il transporte habilement la base de données complète dans la mémoire de Java au lieu de seulement les données d'intérêt (la page actuelle). Vous devrez introduire une pagination basée sur les demandes au niveau DAO. Pour commencer, dans votre classe DAO, faites un SELECT stuff FROM data LIMIT firstrow OFFSET rowcount
ou quelque chose comme ça en fonction du DB utilisé. Ensuite, dans votre JSP créez une table HTML vous-même avec l'aide de JSTL c:forEach
ou Struts 'logic:iterate
. Conservez un ou deux paramètres de requête en arrière-plan dans un élément input type="hidden"
: la première ligne à afficher (première ligne) et éventuellement la quantité de lignes à afficher en même temps (rowcount). Enfin fournir un tas de boutons qui indique au code côté serveur d'entrer/décrémenter le firstrow
avec rowcount
à chaque fois. Fais juste le calcul.
Vous pouvez trouver une réponse plus détaillée here.