Bom dia, estou fazendo uma aplicação com displaytag e vraptor em que tenho de exportar uma tabela do jsp para excel, pdf ou csv.
Porém ao clicar no link que o displaytag gera na página dá erro 404.
Pelo que entendi, se eu utilizar as classes default do displaytag não teria de implementar nada, certo?
O SampleBean é uma classe que fiz para testar esse exemplo, ela contém apenas dois atributos (nome e número) com os respectivos getters e setters, equals e hashcode implementados.
Meu displaytag.properties está assim:
export.types=csv excel xml pdf
export.excel=true
export.csv=true
export.xml=true
export.pdf=true
export.excel.class=org.displaytag.export.DefaultExcelExportView
export.pdf.class=org.displaytag.export.DefaultPdfExportView
basic.msg.empty_list=Nenhum resultado obtido para a pesquisa
export.amount=list
export.csv.label=<span class="csv">CSV</span>
export.excel.label=<span class="excel">EXCEL</span>
export.xml.label=<span class="xml">XML</span>
export.pdf.label=<span class="pdf">PDF</span>
export.csv.filename=sampleBeanCSV.csv
export.excel.filename=sampleBeanExcel.xls
export.xml.filename=sampleBeanXML.xml
export.pdf.filename=sampleBeanPDF.pdf
export.csv.include_header=true
export.excel.include_header=true
export.pdf.include_header=true
Meu jsp está assim:
<div>
<display:table pagesize="2" export="true" name="${sampleBeanList}" class="tablesorter"
defaultsort="1" uid="tabelaTest" sort="list" htmlId="testTabela" excludedParams="ajax">
<display:setProperty name="basic.empty.showtable" value="true"/>
<display:column value="${sampleBeanList}" class="itensLista" property="nome"/>
<display:column value="${sampleBeanList}" class="itensLista" property="numero"
sortable="true" sortProperty="numero" />
<display:setProperty name="export.excel.filename" value="sampleBeanExcel.xls" />
<display:setProperty name="export.csv.filename" value="sampleBeanCSV.csv" />
<display:setProperty name="export.pdf.filename" value="sampleBeanPDF.pdf" />
<display:setProperty name="export.pdf" value="true" />
<display:setProperty name="export.xml" value="false" />
</display:table>
</div>
Meu web.xml
<!-- Filtro VRaptor -->
<filter>
<filter-name>vraptor</filter-name>
<filter-class>br.com.caelum.vraptor.VRaptor</filter-class>
</filter>
<filter-mapping>
<filter-name>vraptor</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<!-- Filtro Exporter Displaytag -->
<filter>
<filter-name>ResponseOverrideFilter</filter-name>
<filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ResponseOverrideFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Meu controller
@Resource
@Path("/")
public class DisplayTagController{
private final Result result;
public DisplayTagController(Result result){
this.result = result;
}
@Get("/exibirListaBean/")
public List<SampleBean> displaytag(){
List<SampleBean> lista = new ArrayList<SampleBean>();
SampleBean bean = new SampleBean();
bean.setNome("Nome Do Bean");
bean.setNumero(1L);
lista.add(bean);
SampleBean bean2 = new SampleBean();
bean2.setNome("Nome Do Bean2");
bean2.setNumero(2L);
lista.add(bean2);
SampleBean bean3 = new SampleBean();
bean3.setNome("Nome Do Bean3");
bean3.setNumero(3L);
lista.add(bean3);
SampleBean bean4 = new SampleBean();
bean4.setNome("Nome Do Bean4");
bean4.setNumero(4L);
lista.add(bean4);
SampleBean bean5 = new SampleBean();
bean5.setNome("Nome Do Bean5");
bean5.setNumero(5L);
lista.add(bean5);
SampleBean bean6 = new SampleBean();
bean6.setNome("Nome Do Bean6");
bean6.setNumero(6L);
lista.add(bean6);
result.include("sucesso", "Objetos adicionados com sucesso!");
return lista;
}
Pelo log do console não exibe erro, apenas esta mensagem, que eu imagino ser o problema, com status de debug.
Não encontrei nada na documentação do displaytag que me esclareça, não encontrei nenhuma referencia a esse parametro, alguém tem alguma idéia de como resolver esse impasse, ou já passou por isso?
Obrigado.