Export do displayTag nao esta funcionando

12 respostas
C

Olá pessoal,

to tentando configurar o displaytag no meu projeto, pois preciso exportar uns relatorios…

configurei o displaytag, e a table vem populada certinho como tem q ser… o meu problema é quando eu clico no link de export (pdf excel) ocorre o seguinte erro…

org.apache.jasper.JasperException: No faces context?!
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:60)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)

javax.servlet.ServletException: No faces context?!
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
	org.apache.jsp.pages.tiles.templates.default_jsp._jspService(default_jsp.java:90)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:60)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)

javax.servlet.jsp.JspException: No faces context?!
	org.apache.myfaces.taglib.core.LoadBundleTag.doStartTag(LoadBundleTag.java:74)
	org.apache.jsp.pages.tiles.templates.default_jsp._jspx_meth_f_loadBundle_0(default_jsp.java:107)
	org.apache.jsp.pages.tiles.templates.default_jsp._jspService(default_jsp.java:71)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:60)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java

Se alguem puder me ajudar, eu agradeceria!!

Muito Obrigada

12 Respostas

Pedrosa

Os jars estão todos corretos?

itext.jar para pdf

C

sim, eu li todo o manual do site do displaytag e inclui todos os jar q precisa,…

itext esta em WebContent/WEB-INF/lib

C

Só pra facilitar um pouco sua vida, evite fazer as configurações no arquivo .properties, faça as configurações direto na displaytable com setProperty. Isso já aconteceu comigo, e resolvi dessa forma.

Abraços!

Pedrosa

Poste ai como vc esta montando a displaytag no JSP.

C

claro…ai esta

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>

<%@page import="br.com.getnet.valegas.controller.mbean.PinMBean" %>
<%@page import="java.util.*" %>

<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>

<%
	List pinsVendidos = PinMBean.getListaPinsVendidos();
	request.setAttribute("pinsVendidos",pinsVendidos);
%>


<table align="center" class="tabelaPrincipal" width="740">
	<tr><td><h3>Relatório de Pins Vendidos</h3></td></tr>
	<tr>
		<td>
			<display:table name="pinsVendidos" requestURI="" id="tabelaPinsVendidoso" pagesize="25" export="true" >
			<display:column property="pin" title="pin" class="campoListagem" sortable="true"/>
			<display:column property="estabelecimento" title="estabelecimento" class="campoListagem" sortable="true"/>
			<display:column property="dataCriacao" title="dataCriacao" class="campoListagem" sortable="true"/>			
			<display:column property="valor" title="valor" class="campoListagem" sortable="true"/>	
			<display:column property="descricaoProduto" title="descricaoProduto" class="campoListagem" sortable="true"/>	
			<display:column property="situacao" title="situacao" class="campoListagem" sortable="true"/>	
			<display:column property="dataAutorizacao" title="dataAutorizacao" class="campoListagem" sortable="true"/>		
			
			<div class="campoListagem"><display:setProperty name="paging.banner.placement" value="bottom"/></div>
			<display:setProperty name="export.excel.filename" value="relatorio.xls"/>
            <display:setProperty name="export.pdf.filename" value="relatorio.pdf"/>
            <display:setProperty name="export.pdf" value="true" />

			
			</display:table>			
		</td>
	</tr> 
</table>
Pedrosa

Na propriedade requestURI da display:table precisa informar uma ação, sua paginação esta funcionando corretamente com mais de uma página?, essa sua propriedade esta em branco, essa ação deve conter o mesmos dados que carrega inicialmente.

requestURI="Relatorio.do?acao=Gerar"
C

nao entendi muito bem o q eu coloco requestURI… eu coloquei em branco pois li num forum que para exportar os dados preciso desse atributo…

sou iniciante, poderia me dar um exemplo…por favor :slight_smile:

Muito Obrigada

Pedrosa

Vamos la, vc jogou uma lista no request correto, essa lista é obtida pela taglib, precisamos da propriedade requestURI para ela montar a paginção corretamente e sua exportação.

Olha a documentação:

http://displaytag.sourceforge.net/11/displaytag/tagreference.html

Talves isso funcione, na primeira vez que vc joga a lista no request troque por sessao:

de

request.setAttribute("pinsVendidos",pinsVendidos);

para

session.setAttribute("pinsVendidos",pinsVendidos);

E na propriedade requestURI vc informe o nome da página

C

OI…

eu fiz como vc disse, e tive alguns progressos…:slight_smile:

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>

<%@page import="br.com.getnet.valegas.controller.mbean.PinMBean" %>
<%@page import="java.util.*" %>

<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>

<%
	List pinsVendidos = PinMBean.getListaPinsVendidos();	
	request.setAttribute("pinsVendidos",pinsVendidos);
%>


<table align="center" class="tabelaPrincipal" width="740">
	<tr><td><h3>Relatório de Pins Vendidos</h3></td></tr>
	<tr>
		<td>
			<display:table name="pinsVendidos" requestURI="/pages/getnet/relatorios/relatorioPINs.jsp" id="tabelaPinsVendidoso" pagesize="25" export="true" >
			<display:column property="pin" title="Pin" class="campoListagem" sortable="true"/>
			<display:column property="estabelecimento" title="Estabelecimento" class="campoListagem" sortable="true"/>
			<display:column property="dataCriacao" title="Data de Criacao" class="campoListagem" sortable="true"/>			
			<display:column property="valor" title="Valor" class="campoListagem" sortable="true"/>	
			<display:column property="descricaoProduto" title="Descricao do Produto" class="campoListagem" sortable="true"/>	
			<display:column property="situacao" title="Situacao" class="campoListagem" sortable="true"/>	
			<display:column property="dataAutorizacao" title="Data Autorizacao" class="campoListagem" sortable="true"/>		
			
			<div class="campoListagem"><display:setProperty name="paging.banner.placement" value="bottom"/></div>
			<display:setProperty name="export.excel.filename" value="relatorio.xls"/>
            <display:setProperty name="export.pdf.filename" value="relatorio.pdf"/>
            <display:setProperty name="export.pdf" value="true" />
			
			</display:table>			
		</td>
	</tr> 
</table>

agora quando eu clico no nome da coluna ela ordena, isso nao estava acontecendo antes… e quando clico no link excel… abre uma nova pagina com os dados … porem deveria abrir o excel nao??

concerteza algo q vc me disse pra fazer eu nao fiz,… :frowning:

poderia me dar uma outra ajuda!!!

GRata

Christiane Gonzaga

Ironlynx

Engraçado… até hoje não consegui o maledetto export para pdf e rtf.iText e outras libs no lugar, e o meu displaytag.properties parece ok:

basic.show.header=true basic.empty.showtable=true basic.msg.empty_list=<tr class="empty"><td colspan="{0}">Nenhum resultado encontrado.</td></tr> sort.amount=list paging.banner.placement=top paging.banner.all_items_found= paging.banner.some_items_found= paging.banner.one_item_found= paging.banner.onepage= paging.banner.full=<div class="pagelinks" align="right"><a ><img ></a><a ><img ></a>{0}<a ><img ></a><a ><img ></a></div> paging.banner.first=<div class="pagelinks" align="right"><a ><img ></a><a ><img ></a> {0} <a ><img ></a><a ><img ></a></div> paging.banner.last=<div class="pagelinks" align="right"><a ><img ></a><a ><img ></a> {0} <a ><img ></a><a ><img ></a></div> export.include_header=true export.banner=<div class="exportlinks"> Exportar para: {0} </div> export.decorated=true export.types=csv excel xml pdf rtf export.excel=true export.csv=true export.xml=true export.pdf=true export.rtf=true export.excel.class=org.displaytag.export.excel.DefaultHssfExportView export.pdf.class=org.displaytag.export.DefaultPdfExportView export.rtf.class=org.displaytag.export.DefaultRtfExportView export.excel.filename=data.xls export.pdf.filename=data.pdf export.xml.filename=data.xml export.csv.filename=data.csv export.rtf.filename=data.rtf
Mas nada de mostrar o export para pdf e rtf… :roll:
Detalhe: o “Exportar para” que eu mudei no arquivinho aparece traduzido, mas o “Nenhum resultado encontrado”. só aparece em inglês!!!

Alguém já teve comportamento semelhante???

C

Olá Ironlynx,

Poderia me mostrar seu jsp?? estou com problema na requestURI; nao consigo nem exportar pra excel… poderia me mostrar por favor o jsp… aonde vc chama a “<display:table”

Obrigada
Christiane Gonzaga

I

Olá Pessoal tambem sou novo no displaytag…

Estou conseguindo exportar para pdf, excel… só não consigo configurar o resultado da exportação…
Tento usar o caption para pdf só que não funciona…

Alguem sabe com resolver isso…

Se quiserem posso passar o codigo do jsp…

att

Criado 10 de agosto de 2006
Ultima resposta 18 de mar. de 2008
Respostas 12
Participantes 5