DisplayTag - Problemas com Decorator e com Export

Boa Tarde,

Estou com um problema com a DisplayTag e gostaria de saber se alguém já passou por isso.

Eu uso um TableDecorator.

Este TableDecorator possui métodos que retornam Links com e sem figura. Além de pintar de vermelho uma String em determinado caso.

Por exemplo:

o método getLinkId() retorna um link com um Id apontando para uma determinada Action.

o método getLinkAssumir() retorna um link + uma figura + javascript de confirmação.

o método getPrioridade() retorna um HTML com fonte em vermelho dependendo do valor da prioridade.

Até aí tudo perfeito, funcionando maravilhosamente bem.

Porém, quando ligo a exportação, começam os problemas.

O meu Bean que é listado não possui o atributo linkId, linkAssumir, eles são “decorados”.

Porém, percebi que ao exportar, ele tenta achar esses atributos no Bean e aí o problema é gerado.

<display:table name="semResponsavel" pagesize="20" requestURI="" export="true" decorator="br.com.xxxx.xxxx.util.Decorator" class="listagem">
   <display:column property="linkId" title="Código" />

linkId é decorado.

Porém, quando vou exportar, dá erro, pois linkId não existe em meu Bean.

Alguém já passou por isso? Ou seja, alguém já usou TableDecorator + Export?

Obrigado e um abraço

Luiz Cantoni

Fiquei numa sinuca de bico.

  1. Deixar sem a exportação nativa da DisplayTag, porém com Decorator, ou seja, com uma tabela mais agradável.

ou

  1. Deixar sem Decorator, porém com as opções de Exportação.

Escolhi a 1a opção.

Agora preciso dar um jeito na exportação, pois acredito que esta é uma limitação da DisplayTag.

Novamente, alguém aí já passou por isso?

Uma ideia

Pq vc nao coloca getCodigo() ou getId() ao inves de getLinkId() no Decorator ? E como se fosse um sobrescrita, o displaytag vai usar primeiro o metodo get do seu Decorator.

Dessa forma vai ser encontrado o metodo get no seu Bean.

Quanto ao getLinkAssumir(), vc pode criar esse metodo no seu Bean retornando null ou “”. E meio q gambiarra isso, mas acho q resolveria pra vc usar o Export

E so uma ideia, mas deve haver solucao melhor, como especificar quais campos vc deseja exportar … da uma olhada na documentacao da displaytag

Ola Zap,

Isso funciona legal mesmo. Eu até tenho um caso desse onde o nome da propriedade do Bean é o mesmo do método no Decorator.

Eu só não fiz isso exatamente por causa da situação onde não tenho a propriedade no meu Bean, o linkAssumir, por exemplo. Se fosse um caso isolado, até que eu faria.

Acho que o jeito vai ser esperar nova versão da DisplayTag ou então modificá-la na mão.