DisplayTag com Divs

10/12/2011

0

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

Responder

Posts

11/12/2011

Davi Costa

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
Responder

12/12/2011

Jesse Teixeira

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>


Responder

12/12/2011

Davi Costa

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

att Davi
Responder

12/12/2011

Jesse Teixeira

sim, mas não resolveu o problema.
Responder

12/12/2011

Davi Costa

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
Responder

12/12/2011

Jesse Teixeira


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
Responder

12/12/2011

Davi Costa

Quando falo de action ou bean é a classe java.

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

att Davi
Responder

12/12/2011

Jesse Teixeira

Ah sim.

eu seto da seguinte maneira:

Preencho minha lista e depois apenas chamo:




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

12/12/2011

Robson Teixeira

como você esta usando EL já tentou usar ${sessionScoped.listaDeJobs} ???
Responder

12/12/2011

Jesse Teixeira

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.
Responder

13/12/2011

Davi Costa

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
Responder

13/12/2011

Jesse Teixeira

Sim, conforme posts acima :)
Responder

13/12/2011

Robson Teixeira

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.
Responder

13/12/2011

Jesse Teixeira

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.
Responder

20/12/2011

Dyego Carmo

Opa !

Resolvido ? Se sim , poderia fechar o chamado ?


Valeu !
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar