[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 

Forum Read-Only! Check the new site and forum here!

Action para retornar solicitação Ajax e Jsp  XML
Forum Index -> Comentários Gerais
Author Message
Rodrigo



Joined: 11/08/2009 13:58:08
Messages: 32
Offline

Pessoal,

Estou com a seguinte dúvida:

Qual é a maneira mais elegante de eu construir uma action para responder a solicitações e mostrar ora via Ajax, ora via jsp?

Por exemplo:

Eu chamaria via browser ActioTeste.listar.mtw?id=1 e quero visualizar o resultado no próprio browser com expression language na página jsp

e em outra página usar requisição via Ajax para o mesmo endereço, no caso, ActionTeste.listar.mtw?id=1


No primeiro exemplo eu colocaria no output da action o seguinte:

output.setValue("produtos", listaProdutos);
return SUCCESS;

Já para retornar para a requisição Ajax teria que ser:

output.setValue(AjaxConsequence.KEY, listaProdutos);
return SUCCESS;


Ou seja, como faço essa distinção na action ou application manager da forma mais elegante?


Eu poderia passar um parametro na chamada da action pra ela saber que deve retorna Ajax, por exemplo:

ActionTeste.listar.mtw?id=1&isAjax=true

e fazer o teste dentro dessa action para dar a saida correspondente...

Ou criar uma outra chamada exclusiva para Ajax, como:

ActionTeste.listarAjax.mtw?id=1

Mas isso duplicaria o código


Alguém tem alguma ideia para me ajudar?

Obrigado

ricardojlrufino


[Avatar]

Joined: 30/03/2008 20:07:28
Messages: 227
Location: Teresina PI
Offline

Estava bolando um solução para isso onde você nem precisaria especificar que a action vai ser Ajax, ou seja , era só jogar no output normal. Nem precisaria configurar no AppManager, mas esbarrei em alguns problemas e n tive mais tempo de terminar.

Da uma olhada: http://forum.mentaframework.org/posts/list/2291.page
Quando tiver tempo vou implementar, provavelmente na versao 2.0 ou na próxima do menta.

Mas tirando isso, no seu caso, as duas soluções são parecidas.
Vc vai ter que escolher entre: Codigo um pouco mais sujo e Código duplicado.

na primeira solução vc poderia fazer;
Code:
if(isAjax){
    output.setValue("produtos", listaProdutos);
    return SUCCESS;
 }else{
    output.setValue(AjaxConsequence.KEY, listaProdutos); 
    return AJAX_SUCCESS;  // Uma nova constante.
 }


no appmanager acho q vc sabe como fazer...

Ricardo JL Rufino <ricardo.jl.rufino@gmail.com> < UNYK > :: Q4Soft :: Teresina - PI
"Existe apenas um bem, o saber, e apenas um mal, a ignorância" - Sócrates
"Devemos julgar um homem mais pelas suas perguntas que pelas respostas" - Voltaire




Mentawai Developer

[WWW] [MSN]
Rodrigo



Joined: 11/08/2009 13:58:08
Messages: 32
Offline

Olá Ricardo...

Obrigado pela resposta já entendi como fazer na action, porém, gostaria que me explicasse como criar essa nova constante AJAX_SUCCESS e como fazer no application manager...


Obrigado
robertwgil


[Avatar]
Joined: 23/02/2007 17:22:13
Messages: 745
Location: São Paulo - SP - Brasil
Offline

http://forum.mentaframework.org/posts/list/2354.page

Robert Gil
Coordenador de Desenvolvimento / Administrador de Redes.

Twitter
[Email] [MSN]
 
Forum Index -> Comentários Gerais
Go to:   
Powered by JForum 2.1.6 © JForum Team