DisplayTag com Divs

Java

10/12/2011

Estou a algum tempo tentanto utilizar a displaytag com Divs no Struts 2.
Funciona normalmente na primeira pesquisa, mas quano peço pra paginar ou ordenar determinada coluna, ele abre uma nova janela no internet explorer ao inves de manter a visualização dentro da Div.

Gostaria de dicas para executar estas paginacoes dentro da DIV mesmo ou até de um outro componente que me ajude a mostrar os resultados dentro de um DIV do Struts 2 de forma eficiente.


Desde ja a gradeço a ajuda de todos.
Jesse Teixeira

Jesse Teixeira

Curtidas 0

Respostas

Davi Costa

Davi Costa

10/12/2011

Posta sua página pelo menos, algumas vezes resolvi esse problema jogando a lista na sessão, ai vc vai ter que tratar seu bean para executar o select sob demanda.

att Davi
GOSTEI 0
Jesse Teixeira

Jesse Teixeira

10/12/2011

Esta é a chamada pra página contendo os resultados:

<s:url id=pesq_url  action=Pesquisar />
                            <sx:div  
                                showLoadingText=true  loadingText=Procurando Registros...
                                id=pesquisasDiv href=%  theme=ajax  
                                listenTopics=efet_pesquisa  formId=form_pesq>  
                            </sx:div>


E esta é a página que exibe os resultados e que fica contida dentro da DIV acima:

<display:table  sort=list
                    export=true
                    defaultsort=3
                    defaultorder=descending
                    pagesize=18
                    requestURI=Pesquisar.action  
                    name=listaDeJobs
                    class=tabelaPesquisa
                    decorator=org.displaytag.decorator.TotalTableDecorator
                    varTotals=totaisDept>
        <display:setProperty name=export.pdf.decorator value=org.displaytag.sample.decorators.ItextTotalWrapper /> 
        <display:column property=centroDeCustos 
                        title=DEPARTAMENTO 
                        headerClass=sortable sortable=true/>
        <display:column property=numeroDePaginas  title=PÁGINAS headerClass=sortable sortable=true total=true/>
        <display:column property=valorDosTrabalhos   format=R$  {0,number,0.00}       title=VALOR headerClass=sortable sortable=true total=true/>
        <display:footer media=excel html pdf>
            <tr>
                <td>TOTAIS</td>
                <td class=textospadroesCentralizados>${totaisDept.column2}</td>
                <td class=textospadroesCentralizados>${totaisDept.column3}</td>
            </tr>
        </display:footer>
    </display:table>


GOSTEI 0
Davi Costa

Davi Costa

10/12/2011

Testou fazer o que eu sugeri colocando a resultando da consulta em sessão?

att Davi
GOSTEI 0
Jesse Teixeira

Jesse Teixeira

10/12/2011

sim, mas não resolveu o problema.
GOSTEI 0
Davi Costa

Davi Costa

10/12/2011

Coloca o código do seu Action, p vermos o que está acontecendo... n é problema de div é do próprio displaytag mesmo.
Tá muito estranho vc ter colocado na session e ainda assim ter dado erro.

att Davi
GOSTEI 0
Jesse Teixeira

Jesse Teixeira

10/12/2011


a action segue assim:

 <action name=Pesquisar    class=br.com.iddeia.actions.Pesquisar>
            <result name=success>/jsp/Resultados.jsp</result>
                </action>   


ja a jsp é aquela mesmo que pasei anteriormente
GOSTEI 0
Davi Costa

Davi Costa

10/12/2011

Quando falo de action ou bean é a classe java.

Queria ver como foi setado com o escopo de sessão.

att Davi
GOSTEI 0
Jesse Teixeira

Jesse Teixeira

10/12/2011

Ah sim.

eu seto da seguinte maneira:

Preencho minha lista e depois apenas chamo:




  HttpSession session = ServletActionContext.getRequest().getSession(false);
        session.setAttribute(listaDeJobs, listaDeJobs);
GOSTEI 0
Robson Teixeira

Robson Teixeira

10/12/2011

como você esta usando EL já tentou usar ${sessionScoped.listaDeJobs} ???
GOSTEI 0
Jesse Teixeira

Jesse Teixeira

10/12/2011

Tentei usar sim, mas o efeito é o mesmo.

Acredito que o erro nao esteja relacionado com a forma de recebimento da lista, mas sim nos links da displayTag que fazem novamente a chamada para a action com a ordenação ou paginação, pois a action direciona para Resultados.jsp e logo , como estou chamando sem o uso do Ajax, ela me retorna a página em uma nova janela.

o que eu precisava era de uma maneira de chamar esta action como se fosse ajax novamente, par auqe apenas atualize o DIV, como antes.

obrigado.
GOSTEI 0
Davi Costa

Davi Costa

10/12/2011

Vc realmente já testou deixando na classe java:


HttpSession session = ServletActionContext.getRequest().getSession(false);
session.setAttribute(listaDeJobs, listaDeJobs);


e na páginana declaração da table o atributo name, desse modo:
name=sessionScope.listaDeJobs



att Davi
GOSTEI 0
Jesse Teixeira

Jesse Teixeira

10/12/2011

Sim, conforme posts acima :)
GOSTEI 0
Robson Teixeira

Robson Teixeira

10/12/2011

olha quando você obteve o jar da displayTag por acaso veio também um arquivo properties junto?????
posso está enganado mas acho q vem esse properties.
GOSTEI 0
Jesse Teixeira

Jesse Teixeira

10/12/2011

Sim, eu ja setei as configuracões deste prperties para deixar ela toda personalizada, inclusive ela esta ja exportando os arquivos e ordenando, mas o problema de abrir em nova janela ainda persiste.
GOSTEI 0
Dyego Carmo

Dyego Carmo

10/12/2011

Opa !

Resolvido ? Se sim , poderia fechar o chamado ?


Valeu !
GOSTEI 0
Jesse Teixeira

Jesse Teixeira

10/12/2011

nao resolvido.
GOSTEI 0
Jesse Teixeira

Jesse Teixeira

10/12/2011

Alguem com alguma dica?

Tentei usar o exemplo desta página: http://kevin.mudrick.com/2009/11/23/ajax-loading-sorting-and-paginating-of-displaytag-tables/


mas ainda assim ela continua abrindo em uma nova página. Alguém já implementou este exemplo com struts 2?



Obrigado.
GOSTEI 0
POSTAR