# 🔧 Correction du Warning DataTable **Date**: 2025-12-18 --- ## ⚠️ Warning Corrigé **Message**: ``` DataTable with paginator=true should also set the rows attribute. ClientId: formUserList:userTable ``` **Fichier**: `lions-user-manager-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/user-manager/users/list.xhtml` --- ## 🔍 Analyse du Problème Le DataTable avait déjà l'attribut `rows="#{userListBean.pageSize}"`, mais PrimeFaces générait un warning car : 1. **Valeur potentiellement null** : Si `userListBean.pageSize` est `null` ou non initialisé, PrimeFaces ne peut pas déterminer le nombre de lignes par page 2. **Exigence PrimeFaces** : Quand `paginator="true"`, l'attribut `rows` doit avoir une valeur définie (non null) --- ## ✅ Solution Appliquée ### Avant ```xml ``` ### Après ```xml ``` **Changement** : Ajout d'une valeur par défaut de `10` si `pageSize` est `null` en utilisant l'opérateur ternaire EL. --- ## 📝 Explication Technique ### Expression Language (EL) Utilisée ```xml rows="#{userListBean.pageSize != null ? userListBean.pageSize : 10}" ``` **Comportement** : - Si `userListBean.pageSize` est défini et non null → utilise cette valeur - Si `userListBean.pageSize` est null → utilise `10` comme valeur par défaut ### Pourquoi 10 ? - ✅ Valeur standard pour les tableaux paginés - ✅ Correspond à la première option dans `rowsPerPageTemplate="10,20,50"` - ✅ Bon compromis entre performance et lisibilité --- ## 🎯 Résultat ### Avant - ⚠️ Warning à chaque chargement de la page - ⚠️ Comportement imprévisible si `pageSize` est null ### Après - ✅ Plus de warning - ✅ Comportement prévisible avec valeur par défaut - ✅ Pagination fonctionne correctement même si `pageSize` n'est pas initialisé --- ## 🔄 Alternative (Si Nécessaire) Si vous préférez une valeur fixe au lieu d'une valeur dynamique avec fallback : ```xml rows="10" ``` **Avantage** : Plus simple, pas de dépendance à `pageSize` **Inconvénient** : Ne respecte pas la préférence utilisateur stockée dans `pageSize` --- ## 📚 Références - [PrimeFaces DataTable Documentation](https://www.primefaces.org/docs/vdl/14.0.0/primefaces-p/dataTable.html) - [JSF Expression Language (EL)](https://jakarta.ee/specifications/faces/3.0/jakarta-faces-spec-3.0.html#el) --- *Document créé le: 2025-12-18*