apache poi - Export your dataTable to Excel and PDF using Primefaces -


i use poi & itext jar export data pdf or excel file, generate report contain data datatable, here got result

http://hpics.li/3653d83

as see, fields contain variable not data datatable.

i file containe data id, name, email... please suggestion

this formateurcontroller.java

package com.controller;  import com.dao.formateurdao; import com.dao.interfaceformateur; import com.lowagie.text.badelementexception; import com.lowagie.text.document; import com.lowagie.text.documentexception; import com.lowagie.text.image; import com.lowagie.text.pagesize; import com.model.formateur; import java.awt.event.actionevent; import java.io.file; import java.io.ioexception; import java.util.list; import javax.faces.bean.managedbean; import javax.faces.bean.sessionscoped; import javax.faces.context.facescontext; import javax.faces.model.datamodel; import javax.faces.model.listdatamodel; import javax.servlet.servletcontext; import org.apache.poi.hssf.usermodel.hssfcell; import org.apache.poi.hssf.usermodel.hssfcellstyle; import org.apache.poi.hssf.usermodel.hssfrow; import org.apache.poi.hssf.usermodel.hssfsheet; import org.apache.poi.hssf.usermodel.hssfworkbook; import org.apache.poi.hssf.util.hssfcolor;  /**  *  * @author ucf  */  @managedbean @sessionscoped public class formateurcontroller {      private formateur formateur;     private datamodel listformateurs;     private formateur selectedformateur;       private formateur[] selectedformateurs;     private list<formateur> filteredformateurs;       public formateur getformateurs() {         if(this.formateur == null){             this.formateur = new formateur();         }         return formateur;     }      public void setformateurs(formateur formateur) {         this.formateur = formateur;     }      public datamodel getlistformateurs() {          list<formateur> lista = new formateurdao().list();         listformateurs = new  listdatamodel(lista);         return listformateurs;     }      public void preparerajouterformateur(actionevent actionevent){         formateur = new formateur();      }     public void preparermodifierformateur(actionevent actionevent){         formateur = (formateur)(listformateurs.getrowdata());      }     public void ajouter(actionevent actionevent){         interfaceformateur dao = new formateurdao();         dao.enregistrer(formateur);     }      public void modifier(actionevent actionevent){         interfaceformateur dao = new formateurdao();         dao.actualiser(formateur);     }      public string exclure(){         formateur employers = (formateur)(listformateurs.getrowdata());         interfaceformateur dao = new formateurdao();         dao.supprimer(employers);         return "index";     }      public formateur getselectedformateur() {         return selectedformateur;     }      public void setselectedformateur(formateur selectedformateur) {         this.selectedformateur = selectedformateur;     }      public list<formateur> getfilteredformateurs() {         return filteredformateurs;     }      public void setfilteredformateurs(list<formateur> filteredformateurs) {         this.filteredformateurs = filteredformateurs;     }      public formateur[] getselectedformateurs() {         return selectedformateurs;     }      public void setselectedformateurs(formateur[] selectedformateurs) {         this.selectedformateurs = selectedformateurs;     }          public void postprocessxls(object document) {       hssfworkbook wb = (hssfworkbook) document;       hssfsheet sheet = wb.getsheetat(0);       hssfrow header = sheet.getrow(0);        hssfcellstyle cellstyle = wb.createcellstyle();         cellstyle.setfillforegroundcolor(hssfcolor.green.index);       cellstyle.setfillpattern(hssfcellstyle.solid_foreground);        for(int i=0; < header.getphysicalnumberofcells();i++) {           hssfcell cell = header.getcell(i);            cell.setcellstyle(cellstyle);       }   }    public void preprocesspdf(object document) throws ioexception, badelementexception, documentexception {       document pdf = (document) document;       pdf.open();       pdf.setpagesize(pagesize.a4);        servletcontext servletcontext = (servletcontext) facescontext.getcurrentinstance().getexternalcontext().getcontext();       string logo = servletcontext.getrealpath("") + file.separator + "images" + file.separator + "actus-0-740-econocom-logo.gif";        pdf.add(image.getinstance(logo));   }           public string  redirectformateur(){         return "modifierfournisseur.xhtml";      }   } 

this index.xhtml

<?xml version='1.0' encoding='utf-8' ?> <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"       xmlns:h="http://xmlns.jcp.org/jsf/html"       xmlns:p="http://primefaces.org/ui"       xmlns:f="http://xmlns.jcp.org/jsf/core">     <h:head>         <title>gestion de réservation pour une formation</title>     </h:head>     <h:body>         <p:layout fullpage="true">             <p:layoutunit position="north" size="150">                 <center>  <h1>gestion de réservation pour une formation</h1></center>             </p:layoutunit>             <p:layoutunit position="west" size="200"  rendered="true" collapsible="true" resizable="true" closable="true" header="menu">                 <h:form>                     <p:commandlink value="nouveau formateur" actionlistener="#{formateurcontroller.preparerajouterformateur(actionevent)}" onclick="dlgformateur.show();" />                 </h:form>             </p:layoutunit>             <p:layoutunit position="center">                 <h:form id="form">                     <p:dialog widgetvar="dlgformateur" resizable="false"  height="400" width="450" header="ajout formateur" position="center">                      <p:panelgrid columns="2">                         <h:outputtext value="nom"/>                         <p:inputtext id="adresse2" value="#{formateurcontroller.formateurs.adresse}"/>                          <h:outputtext value="cin"/>                         <p:inputtext id="cin2" value="#{formateurcontroller.formateurs.cin}"/>                          <h:outputtext value="email"/>                         <p:inputtext id="email2" value="#{formateurcontroller.formateurs.email}"/>                          <h:outputtext value="nom"/>                         <p:inputtext id="nom2" value="#{formateurcontroller.formateurs.nom}"/>                          <h:outputtext value="prenom"/>                         <p:inputtext id="prenom2" value="#{formateurcontroller.formateurs.prenom}"/>                          <h:outputtext value="pseudo"/>                         <p:inputtext id="pseudo2" value="#{formateurcontroller.formateurs.pseudo}"/>                          <h:outputtext value="sexe"/>                         <p:inputtext id="sexe2" value="#{formateurcontroller.formateurs.sexe}"/>                          <h:outputtext value="telephone"/>                         <p:inputtext id="telephone2" value="#{formateurcontroller.formateurs.telephone}"/>                          <p:commandbutton value="enregistrer" id="eng" actionlistener="#{formateurcontroller.ajouter(actionevent)}" update="dataformateur" oncomplete="dlgformateur.hide()"/>                      </p:panelgrid>                   </p:dialog>                      <p:datatable id="dataformateur" value="#{formateurcontroller.listformateurs}" var="formateur" rowkey="#{formateur.formateurid}" paginator="true" rows="10" selection="#{formateurcontroller.selectedformateurs}" selectionmode="multiple" filteredvalue="#{formateurcontroller.filteredformateurs}" rowsperpagetemplate="5,10,20,30">                         <p:ajax event="rowselect" update=":form:display" oncomplete="formateurdialog.show()" />                           <f:facet name="header">                               list of formateurs                           </f:facet>                           <p:column headertext="id" sortby="#{formateur.formateurid}" filterby="#{formateur.formateurid}" id="id_formateur">                               #{formateur.formateurid}                           </p:column>                            <p:column headertext="adresse" sortby="#{formateur.adresse}" filterby="#{formateur.adresse}" id="adresse">                               #{formateur.adresse}                           </p:column>                            <p:column headertext="cin" sortby="#{formateur.cin}" filterby="#{formateur.cin}" id="cin">                               #{formateur.cin}                           </p:column>                            <p:column headertext="email" sortby="#{formateur.email}" filterby="#{formateur.email}" id="email">                               #{formateur.email}                           </p:column>                          <p:column headertext="nom" sortby="#{formateur.nom}" filterby="#{formateur.nom}" id="nom">                               #{formateur.nom}                           </p:column>                         <p:column headertext="prenom" sortby="#{formateur.prenom}" filterby="#{formateur.prenom}" id="prenom">                               #{formateur.prenom}                           </p:column>                         <p:column headertext="pseudo" sortby="#{formateur.pseudo}" filterby="#{formateur.pseudo}" id="pseudo">                               #{formateur.pseudo}                           </p:column>                         <p:column headertext="sexe" sortby="#{formateur.sexe}" filterby="#{formateur.sexe}" id="sexe">                               #{formateur.sexe}                           </p:column>                         <p:column headertext="telephone" sortby="#{formateur.telephone}" filterby="#{formateur.telephone}" id="telephone">                               #{formateur.telephone}                           </p:column>                         <p:column>                             <f:facet name="header">                                 <h:outputtext value="excluir" />                             </f:facet>                             <p:commandlink value="excluir" action="#{formateurcontroller.exclure()}" onclick="if(!confirm('existe déjà #{formateur.nom}?'))return false;" update ="dataformateur"/>                         </p:column>                        </p:datatable>                      <h:panelgrid columns="2">                           <p:panel header="export data">                               <h:commandlink>                                   <p:graphicimage value="/images/excel.png" />                                   <p:dataexporter type="xls" target="dataformateur" filename="formateurs" postprocessor="#{formateurcontroller.postprocessxls}" />                               </h:commandlink>                                <h:commandlink>                                   <p:graphicimage value="/images/pdf.png" />                                   <p:dataexporter type="pdf" target="dataformateur" filename="formateurs"/>                               </h:commandlink>                                <h:commandlink>                                   <p:graphicimage value="/images/csv.png" />                                   <p:dataexporter type="csv" target="formateur" filename="formateurs" />                               </h:commandlink>                                <h:commandlink>                                   <p:graphicimage value="/images/xml.png" />                                   <p:dataexporter type="xml" target="formateur" filename="formateurs" />                               </h:commandlink>                           </p:panel>                            <p:panel header="export page data">                               <h:commandlink>                                   <p:graphicimage value="/images/excel.png" />                                   <p:dataexporter type="xls" target="formateur" filename="formateurs" pageonly="true"/>                               </h:commandlink>                                <h:commandlink>                                   <p:graphicimage value="/images/pdf.png" />                                   <p:dataexporter type="pdf" target="formateur" filename="formateurs" pageonly="true"/>                               </h:commandlink>                                <h:commandlink>                                   <p:graphicimage value="/images/csv.png" />                                   <p:dataexporter type="csv" target="formateur" filename="formateurs" pageonly="true"/>                               </h:commandlink>                                <h:commandlink>                                   <p:graphicimage value="/images/xml.png" />                                   <p:dataexporter type="xml" target="formateur" filename="formateurs" pageonly="true"/>                               </h:commandlink>                           </p:panel>                       </h:panelgrid>                         <p:dialog header="formateur detail" widgetvar="formateurdialog" resizable="false"                                 width="300" showeffect="explode" hideeffect="explode">                                  <p:datalist id="display"                                           value="#{formateurcontroller.selectedformateurs}"                                           var="selectedformateur" type="definition">                                    id: #{selectedformateur.formateurid}, adresse: #{selectedformateur.adresse}                                </p:datalist>                         </p:dialog>                       </h:form>             </p:layoutunit>         </p:layout>     </h:body> </html> 

i'd grateful feedback.

you should instantiate formateur in beginning like:

 private formateur formateur = new formateur(); 

when call getter, checking if formateur null, has not been initialized yet. might problem far understand. not sure if can check if object null if has not been created/initialized. so, maybe try initializing in declarataion or try removing condition check if null.


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -