Lapis JSF Exporter

By , 13/02/2014

Certaines librairies JSF proposent des fonctionnalités d’export des tableaux (dataTable). Malheureusement, souvent ces fonctionnalités sont limités aux composants de la librairie elle-même. J’ai trouvé la librairie Lapis JSF Exporter très intéressante car elle permet d’exporter des composants de plusieurs librairies différentes de la même façon. De plus, elle est très facile d’accès et donc rapidement extensible.

Le projet est hébergé sur GitHub à l’adresse suivante : https://github.com/rdicroce/jsfexporter

Fonctionnalités

Dans la version actuelle (1.0.1.Final), il est possible d’exporter les composants suivants :

  • h:panelGrid
  • h:dataTable
  • rich:dataTable
  • p:dataTable (avec des colonnes dynamiques, lazy loading et des  p:columnGroup)
  • p:treeTable
  • p:dataList

Les composants supportant l’export à l’intérieur des cellules sont, entre autres :

  • h/p:commandLink
  • h:outputFormat
  • h:panelGroup
  • p:cellEditor

Les supports d’exports existants sont les suivants :

  • CSV
  • XML
  • PDF
  • XLS/XLSX

Installation

Pour installer la librairie, il faut ajouter dans les dépendances du projet la librairie core (jsf-exporter-core). C’est la librairie autour de laquelle toutes les implémentations sont développées.

<dependency>
    <groupId>com.lapis.jsfexporter</groupId>
    <artifactId>jsf-exporter-core</artifactId>
    <version>1.0.1.Final</version>
</dependency>

Il faudra ensuite déclarer le module d’exportation (CSV, PDF, etc.)

<dependency>
    <groupId>com.lapis.jsfexporter</groupId>
    <artifactId>export-type-csv</artifactId>
    <version>1.0.1.Final</version>
</dependency>
<dependency>
    <groupId>com.lapis.jsfexporter</groupId>
    <artifactId>export-type-excel</artifactId>
    <version>1.0.1.Final</version>
</dependency>
<dependency>
    <groupId>com.lapis.jsfexporter</groupId>
    <artifactId>export-type-pdf</artifactId>
    <version>1.0.1.Final</version>
</dependency>
<dependency>
    <groupId>com.lapis.jsfexporter</groupId>
    <artifactId>export-type-xml</artifactId>
    <version>1.0.1.Final</version>
</dependency>

Enfin, si vous souhaitez exporter des composants d’une des deux librairies RichFaces ou PrimeFaces, le “connecteur” sur la librairie

<dependency>
    <groupId>com.lapis.jsfexporter</groupId>
    <artifactId>export-source-primefaces</artifactId>
    <version>1.0.1.Final</version>
</dependency>
<dependency>
    <groupId>com.lapis.jsfexporter</groupId>
    <artifactId>export-source-richfaces</artifactId>
    <version>1.0.1.Final</version>
</dependency>

Exemple

Après avoir inclus les dépendances, pour utiliser  ce composant d’export, il faut d’une part, le déclarer dans les namespaces XML de la page XHTML puis l’utiliser en complément d’un bouton JSF :

xmlns:l="http://www.lapis.com/jsf/exporter"

...

<p:commandButton value="Export XLSX" ajax="false">
    <l:dataExporter source="table" fileType="excel" fileName="myfile"/>
</p:commandButton>

Leave a Reply


one + = 5

OfficeFolders theme by Themocracy