Comment exporter directement une collection de DTO vers CSV, Excel ou PDF?

J'ai une List<MyDto> que je souhaite exporter avec PrimeFaces. J'ai essayé avec <p:dataExporter> , mais il semble qu'il n'utilise que le contenu UI <p:dataTable> .

Comment puis-je exporter directement une list de DTO vers CSV, Excel ou PDF?

Vous avez besoin d'une bibliothèque pour gérer cela. Primefaces ne sait pas insortingnsèquement comment afficher vos données (il parsing les colonnes, puis les exports en fonction de cela) afin que vous ayez besoin de lui donner quelques conseils. La réponse courte est que vous pouvez facilement créer une table par programmation via la reflection sur le DTO et la lier à la page ou en créant une table de données simple et la configurer dans un style de "display: none" puis en utilisant l'exportateur.

Alternativement, vous pouvez regarder une suite de rapports comme JasperReports qui gère l'printing aux formats ci-dessus, mais encore une fois, vous devrez faire quelque chose pour l'interpréter. Si vous ne vous souciez pas de la performance, JSON-Lib a une très belle méthode "toXML" qui déchira un DTO à xml qui pourrait être facilement exporté vers l'un des formats que vous choisissez.

Fondamentalement, vous regardez ~ 1 heure de travail si c'est un set complexe de DTO ou 10 minutes s'il ne l'est pas – tant que la bande passante n'est pas un problème, cela devrait être totalement indolore.