Foros del Web » Programación para mayores de 30 ;) » Java »

Exportar un rich:datatable a Excel o PDF en JSF usando Maven2

Estas en el tema de Exportar un rich:datatable a Excel o PDF en JSF usando Maven2 en el foro de Java en Foros del Web. Hola! Sé que la duda es rebuscada, pero casi no tengo pestañas de tanto intentarlo. Tengo una pequeña aplicación en JSF que tira con SWF ...
  #1 (permalink)  
Antiguo 16/03/2010, 11:13
Avatar de Llave  
Fecha de Ingreso: abril-2005
Ubicación: Galicia
Mensajes: 52
Antigüedad: 19 años
Puntos: 1
Pregunta Exportar un rich:datatable a Excel o PDF en JSF usando Maven2

Hola!

Sé que la duda es rebuscada, pero casi no tengo pestañas de tanto intentarlo.
Tengo una pequeña aplicación en JSF que tira con SWF (Spring web flow).

El caso es que quería que los datos de una tabla (rich:datatable) se pudiesen exportar a una hoja excel o un documento pdf.

La aplicación tira bajo Maven2.

Ahora mismo, tengo el botón creado después de la tabla, pero lo pulso y no me hace ni caso.
Teniendo en cuenta que el código que tengo es casi 100% igual que muchas páginas que visité, imagino que el motivo de que el botón no haga nada estará en la configuración del servlet o del pom.xml

Os pongo lo que tengo a groso modo:

El código que quiero hacer funcionar se asemeja mucho a este (utilizo primefaces):

Código:
<h:dataTable  id="tbl" var="car" value="#{bean.cars}">
    <h:column>
        <f:facet name="header">
            <h:outputText value="Model" />
        </facet>
	<h:outputText value="#{car.model}" />
    </h:column>
	 
	   // más columnas.
	 
</h:dataTable>


<h:commandButton  value="Excel">
    <opt:exportActionListener type="xls" target="tbl" fileName="cars"/>
</h:commandButton>
código extraído de: http://cagataycivici.wordpress.com/2...l-pdf-csv-xml/


Cómo no... al inicio del fichero me cuido de tener declarado el
Código:
xmlns:opt="http://primefaces.prime.com.tr/optimus"
y la configuración de mi web.xml en lo relativo a primefaces:

Código:
<!-- PrimeFaces Servlet -->
<servlet>
	<servlet-name>Resource Servlet</servlet-name>
	<servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
</servlet>
 	
<servlet-mapping>  
	<servlet-name>Resource Servlet</servlet-name>  
     	<url-pattern>/primefaces_resource/*</url-pattern> 
</servlet-mapping>

Los JAR, los declaro en el pom.xml de Maven2
El repositorio está bien, no creo que haya fallo en él. Donde me queda la duda es si en las dependencias me hará falta alguna o si, por el contrario, necesitaría algún servlet más para poder hacer funcionar al condenado botón.

Extracto del pom.xml

Código:
<repository>
	<id>prime-repo</id>
	<name>Prime Technology Maven Repository</name>
	<url>http://repository.prime.com.tr/</url>
	<layout>default</layout>
</repository>
y las dependencias del pom:

Código:
        <dependency>
        	<groupId>org.primefaces</groupId>
                <artifactId>primefaces</artifactId>
                <version>1.0.0.RC-SNAPSHOT</version>
		</dependency>
        <dependency>
                <groupId>org.primefaces</groupId>
                <artifactId>optimus</artifactId>
                <version>0.9.0-SNAPSHOT</version>
        </dependency>
        <dependency>
        	<groupId>org.primefaces</groupId>
        	<artifactId>facestrace</artifactId>
        	<version>1.1.1-SNAPSHOT</version>
        </dependency>
        <dependency>
        	<groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>3.2-FINAL</version>
        </dependency>
        <dependency>
   		<groupId>com.lowagie</groupId>
   		<artifactId>itext</artifactId>
   		<version>1.4.8</version>
	</dependency>
Añadí el itext pese a que las pruebas son para excel, porque también me interesa poder exportar a PDF.

Bueno. Con todo esto, el Maven2 me compila sin errores y la aplicación funciona con normalidad, pero el botón... me ignora.

¿Alguna idea?
  #2 (permalink)  
Antiguo 26/07/2011, 05:37
 
Fecha de Ingreso: julio-2011
Mensajes: 1
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Exportar un rich:datatable a Excel o PDF en JSF usando Maven2

Buenas!
yo tyengo una dudaparecida a la tuya pero no encuentro respuesta.
Tengo un data table

<p:dataTable id="tbl" var="car" value="#{QueryBean.resultado}" paginator="true" rows="10">

<p:column>
<f:facet name="header">
<h:outputText value="Study Date" />
</f:facet>
<h:outputText value="#{car.study_date}" />
</p:column>

</p:dataTable>


y despues un panel grid con el codigo de primefaces para exportar los valores:

<h:panelGrid columns="2">
<p:panel header="Export All Data">
<h:commandLink>
<p:graphicImage value="/jsp/img/excel.png" />
<p:dataExporter type="xls" target="tbl" fileName="cars" />
</h:commandLink>

<h:commandLink>
<p:graphicImage value="/jsp/img/pdf.png" />
<p:dataExporter type="pdf" target="tbl" fileName="cars" />
</h:commandLink>

<h:commandLink>
<p:graphicImage value="/jsp/img/csv.png" />
<p:dataExporter type="csv" target="tbl" fileName="cars" />
</h:commandLink>

<h:commandLink>
<p:graphicImage value="/jsp/img/xml.png" />
<p:dataExporter type="xml" target="tbl" fileName="cars" />
</h:commandLink>
</p:panel>

<p:panel header="Export Page Data">
<h:commandLink>
<p:graphicImage value="/jsp/img/excel.png" />
<p:dataExporter type="xls" target="tbl" fileName="cars" pageOnly="true" />
</h:commandLink>

<h:commandLink>
<p:graphicImage value="/jsp/img/pdf.png" />
<p:dataExporter type="pdf" target="tbl" fileName="cars" pageOnly="true" />
</h:commandLink>

<h:commandLink>
<p:graphicImage value="/jsp/img/csv.png" />
<p:dataExporter type="csv" target="tbl" fileName="cars" pageOnly="true" />
</h:commandLink>

<h:commandLink>
<p:graphicImage value="/jsp/img/xml.png" />
<p:dataExporter type="xml" target="tbl" fileName="cars" pageOnly="true" />
</h:commandLink>
</p:panel>
</h:panelGrid>



Si pongo directamente el valor en el data table si que me lo exporta:

<p:dataTable id="tbl" var="car" value="#{QueryBean.resultado}" paginator="true" rows="10">

<p:column>
<f:facet name="header">
<h:outputText value="Study Date" />
</f:facet>
<h:outputText value="Uno" />
</p:column>

</p:dataTable>



Pero si pongo el back bean no, y no se por qué.


<p:dataTable id="tbl" var="car" value="#{QueryBean.resultado}" paginator="true" rows="10">

<p:column>
<f:facet name="header">
<h:outputText value="Study Date" />
</f:facet>
<h:outputText value="#{car.study_date}" />
</p:column>

</p:dataTable>




Alguna idea¿

Etiquetas: excel, exportar, jsf, maven2, pdf
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:11.