Pagination JSF efficace
Quel est le moyen le plus efficace de faire de la pagination dans JSF 2.0 application?
J'utilise Primefaces datatable et il est assez intelligent pour effectuer
la pagination, sans aucun codage.
<p:dataTable var="car" value="#{carBean.cars}" paginator="true" rows="10">
<!-- Multiple columns here-->
</p:dataTable>
La chose que je vois, c'est que j'ai besoin de placer mon bean de session étendue ou plus.
@ManagedBean
@SessionScoped
public class CarBean{
public List<Car> getCars(){
//return data from DB
}
}
Je voulais savoir est-il un autre moyen efficace sur la façon d'effectuer cette?
J'ai utilisé EJB/JPA, à l'arrière-plan. Voudrais savoir tout des liens ou des tutoriels
pour en savoir plus à ce sujet.
Grâce.
source d'informationauteur Mark Estrada | 2011-09-12
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
LazyDataModel
afin d'avoir seulement les lignes de la mémoire dont le client a besoin de voir. Voir aussi l'exemple de PrimeFaces vitrine. Ce n'pagination au niveau de DB qui est ce que vous voulez finalement.RichFaces prend en charge, par la manière, le même dans la saveur de
ArrangableDataModel
voici la RichFaces vitrine exemple.Dans une production de l'app, nous avons utilisé un paresseux modèle de données à traiter avec 700000 enregistrements dans la base de données. Je suggérerais à l'aide de M3, ce qui a des corrections sur paresseux datatable cas.
J'ai trouvé que le construit en pagination fonction de la Primefaces tableau de données est l'une des meilleures fonctionnalités et avez une bonne quantité de tests de charge sur elle, apportant dans les jeux d'enregistrements avec plus de 30 000 entités Hibernate et a trouvé la performance d'être terne. Bien sûr, cela signifie que vous disposez de 30 000 entités de session donc, j'ai la suite dans ma
web.xml
d'aide par le stockage de session sur le serveur.Cela permettra de réduire la taille de l'état d'affichage permettant de demande/réponse de la taille à être considérablement réduit cependant de côté de serveur de mémoire peuvent souffrir énormément en faisant cela.
Une autre option dans certains JSF implémentations pour aider à atténuer la taille de ViewStat de session ou de l'utilisation de la mémoire est la compression. Le lien suivant décrit un certain nombre de SOLEIL RI et MyFaces JSF paramètres de configuration qui peuvent être définis, certains donnent l'option de compression de l'état de la session. http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Finfo%2Fexp%2Fae%2Frweb_jsfengine.html
Autant que apprendre plus au sujet de la façon dont le Primefaces DataTable la pagination fonctionne, pourquoi ne pas aller directement à la source? Primefaces est, après tout, un projet open source, donc il suffit de regarder le code et voir ce que vous pouvez apprendre: http://code.google.com/p/primefaces/source/browse/#svn%2Fprimefaces
Important remarque: selon la version de Primefaces vous utilisez. En commençant avec la version 3.0.M2 (je pense) si vous souhaitez utiliser la ligne sélectionner la fonction que vous devez mettre en œuvre un SelectableDataModel. Cette brise beaucoup de code hérité et il y avait un certain nombre de chiennes à ce sujet.
Meilleure chose à faire est de créer un intérieur de classe comme ceci:
Puis le valeur attribut p:dataTable devient #{bean.dataModel}.
Bonne chance.