Struts 2 + AJAX

7 respostas
zeh_otavio

Estou começando a fazer um site com Struts 2, mas estou precisando de um help:

  • Gostaria de saber se se é possível e se vale a pena utilizar as tags ajax para renderizar uma pagina?

Tipo assim… pensei em ter uma página principal

<s:div id=“menu”>
<s:include value=“menu.jsp”/>
</s:div>

<s:div id="main" theme="ajax">

</s:div>

Então quando eu clicar em um link do menu, por exemplo Cadastrar Usuário, ao inves de eu abrir uma página cadastrarUsuario.jsp com o form, menu, etc (ocorrendo um refresh completo da pagina) eu chamaria uma action retornando a pagina cadastrarUsuario.jsp,contendo somente o form, para a div “main”.

Parece bem caseiro fazer isso… hiehieihei… mas é que detesto refresh de pagina… e ouvi dizer que trabalhar com as frames do html, também não é uma boa opção…

Sou noob aqui no fórum… tenham paciencia… hehehehe

7 Respostas

D

Fala meu amigo,

Utilizar as tags ajax do struts lhe traz alguns beneficios como validação de entrada feita pelo proprio struts sem ter que utilizar javascript, integração com o framework dojoToolkit para utilização de javascript, utilização da tag s:div para fazer o que vc esta querendo que seria renderizar somente o componente dentro da div sem dar refresh na página.
Mas vou ser sincero, eu utilizei em um projeto, tive alguns problemas com s:div principalmente para integrar com outro framework o DisplayTags para renderezar tabelas com paginação.
Sem falar que o layout fica amarrado, pois quando vc utilizar tags ajax do struts2 ele automaticamente renderiza seu componente dentro de tabelas o que torna meio difícil trabalhar com o layout.
Eu utilizar com moderação, tipo, faz uns testes ai que vc vai ver se encaixa no teu projeto.

abraço.

att
Diego

zeh_otavio

Valeu Diego… você tem razão mesmo… é preciso analisar… as chamada das páginas por exemplo, fica meio lerdo… cliquei umas 10 vezes em um mesmo link para testar e chegou a dar uma “bugada” no browser…

Mas tem alguma outra solução para este refresh de página? Não sei se é frescura isso hehehee… mas o que mais me incomoda em sistemas web é esse refresh toda hora que tem que trocar algo na tela… alguma forma de “jogar” uma pagina jsp em uma div…

D

O duplo submit tem como vc tratar com interceptors, agora esse refresh só utilizando um framework ajax como DWR.

att
Diego

zeh_otavio

Cara sempre tive curiosidade de saber a utilidade desses Interceptors… nunca tinha lido um documento bom sobre isso… e na própria Apache te um legal para entender o funcionamento…

http://struts.apache.org/2.x/docs/interceptors.html

No caso do duplo submit é só utilizar o Token Interceptor.

Aprendi a desenvolver web sozinho… daí as vezes eu fico meio perdido, porque o conceito não está bem definido na cabeça… ehihieheie

E para o refresh não achei soluções diferentes de ajax… na verdade achei alguns lugares usando innerHtml… mas não entendi direito… porque na verdade eu só quero tipo fazer um <s:include value=“cadastrarUsuario.jsp”> (ou outra maneira de incluir uma jsp) dinamico em uma

na index.jsp… quando o usuário clicar no menu “Cadastrar Usuario”… entende!? (estou falando isso, porque estava lendo no site da DWR e achei isso: “Struts v2 uses DWR for Ajax Validation”… daí fico pensando se é caseirisse usar DWR somente para fazer uma chamada uma jsp sem refresh da pagina inteira).

… mas esse DWR é melhor do que o Dojo? É relamente utilizado somente para validações?! Quanto mais leio mais fico confuso… hahaaha

Valeu aí a ajuda e a paciência até agora…

D

O DWR é um framework ajax bastante completo, para fazer validaçõe sugiro que vc utilize o Dojo mesmo.
O DWR vc pode utilizar para fazer coisas mais complexas.
Com ele por exemplo vc escreve classes java que fazem operações no banco por exemplo e retorna uma list de objetos, esse metodo em java se torna disponível em javascript atraves do DWR.

Utilize s:div para apresentar os resultados de suas actions, desta forma a cada chamada de sua action somente este componente será atualizado.

zeh_otavio

Beleza Diego! Valeu a ajuda aí cara!

Como eu faço para encerrar o tópico!?

D

Rapaz… encerrar o tópico eu nao sei nao!

abraço!!

Criado 26 de janeiro de 2009
Ultima resposta 6 de fev. de 2009
Respostas 7
Participantes 2