| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/11/2009 11:31:03
|
ACDias
JavaGuru
![[Avatar]](/images/avatar/5e56343dada029d40a90b44e1ca3d495.png)
Membro desde: 11/08/2006 19:54:51
Mensagens: 219
Localização: Patos de Minas
Offline
|
Olá,
Estou migrando do VRaptor2 para o 3 e estou com uma dúvida sobre como criar requisições ajax. Como não achei a documentação desta parte muito intuitiva, resolvi postar aqui.
No VRaptor2 eu simplesmente anotava um método com a annotation @Remotable e realizava uma requisição para "action.metodo.ajax.logic" para realizar a requisição. O framework automaticamente parseava todos os objetos a serem ejetados para JSON.
No VRaptor3, eu realizo a requisição para qual URL?
E eu sempre terei que criar um "descritor" para a resposta JSON (/WEB-INF/jsp/action/metodo.json.jsp)? (se for desta maneira mesmo, eu preferia da maneira q era feito no 2 - era mais produtiva)
Obrigado.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/11/2009 11:42:08
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
Membro desde: 07/08/2002 18:38:50
Mensagens: 4154
Localização: São Paulo
Offline
|
oi ACDias. Estamos lancando na versao 3.0.2 um suporte inicial ao JSON/XML para AJAX sem ter de criar um jsp para tal. Deve sair essa semana ainda!
|
http://blog.caelum.com.br twitter: @paulo_caelum
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/11/2009 15:34:16
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 5631
Offline
|
No VRaptor3 vai ser a requisição para a URL normal, a mesma que você usaria se o resultado for uma jsp
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/11/2009 15:52:05
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2673
Localização: Porto Alegre
Offline
|
Uma gambiarra que você pode fazer até esperar uma nova implementação é criar teu JSON dentro do método do controller e jogar para a saída como String mesmo. No meu caso eu criei um interceptor que intercepta (que redundante, hehe) todos métodos onde o retorno é um JsonObject (json.org/java), e então faço a impressão o jogo para o browser.
Silveira, outro dia você comentou na issue os planos de usar xstream. Vocês farão algo que possa gerar tanto XML como Json? Ou apenas Json?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/11/2009 22:56:02
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 5631
Offline
|
garcia-jj wrote:
Silveira, outro dia você comentou na issue os planos de usar xstream. Vocês farão algo que possa gerar tanto XML como Json? Ou apenas Json?
Olá garcia,
isso já foi implementado, com o XStream por tras, está disponível no snapshot do repositório... e gera tanto xml quanto json:
o suporte ainda é básico, são serializados por padrão todos os campos primitivos do objeto (String, números, enums e datas)
e você pode incluir os campos não primitivos com o include, e excluir os primitivos com o exclude..
[]'s
This message was edited 1 time. Last update was at 11/11/2009 22:58:49
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/11/2009 23:29:29
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2673
Localização: Porto Alegre
Offline
|
Faz anos que não acompanho o xstream, mas antigamente tinha um problema quando a ele precisar de permissões no security manager para criar classloaders (isso em JVM compartilhadas, onde o security manager é muito restrito)? Ainda é necessário ter o XPP3 ou instanciar o DOM driver manualmente? Para JSON será usado o Jetinson? Olhei hoje por cima como ficou a implementação, ficou muito bom. Abraços, e obrigado.
This message was edited 1 time. Last update was at 11/11/2009 23:30:06
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/11/2009 00:03:12
|
Edufa
JavaEvangelist
![[Avatar]](/images/avatar/5747a0021eb349e9c8d3667cf1a5e9ec.jpg)
Membro desde: 18/04/2006 10:20:03
Mensagens: 313
Localização: Curitiba, PR
Offline
|
Q maravilha, rs, acabei de terminar uma implementação usando xstream q tinha de exportar um monte de coisas em xml, hehehe se eu tivesse uma semana a mais de prazo teria ganho alguns dias, rs
Depois com tempo vou testar essa versão aqui, pois eu tenho algumas situações bem chatas de objetos bidirecionais q foi meio chato para tirar as referencias circulares sem contar q ficou feio, sem contar q eram entities do hibernate então tem coleções lazy para todos os lados.
exemplinho de cabeça, tem suporte ?
@garcia-jj
Eu tive problemas em usar o xstream no gae, mas era algo bem especifico, se não me engano algo relacionado ao reflection, tem ou pelo menos tinha issue no site do xstream, mas até a ultima vez q eu vi ainda não tinham previsão de suporte completo para o gae, aí eu tive de compilar a minha versão do xstream com umas coisinhas a mais.
@vraptor-team
Parabéns !
|
Edufa
Curitiba, PR
--
"O estado sou eu". - Luís XIV
"O estado somos nós."- Lênin
"O estado somos eu." - Lula
--
O mundo é deles mas a amazônia é nossa
O petróleo é nosso, mas o gás é deles.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/11/2009 01:10:41
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 5631
Offline
|
@garcia-jj
Estamos usando o XStream normal, portanto com o XPP parser, e para JSon estamos usando o JSonHierarchicalDriver, que não precisa do jettinson...
Mas você pode estender o serializer e criar o XStream do jeito que você quiser, passando outro ReflectionProvider, outro Driver, etc...
@Edufa
esse código que você passou funciona sim (ou pelo menos deveria, talvez tenha que adicionar alguns testes para listas de elementos):
de qqer forma esse vai ser o jeito de excluir elementos... passando o caminho deles a partir do objeto principal
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/11/2009 01:57:10
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 5631
Offline
|
@Edufa
agora funciona para collections também, com algumas limitações do XStream, mas funciona... (use implementações padrão de lista (ArrayList, LinkedList, etc)
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/11/2009 20:07:51
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2673
Localização: Porto Alegre
Offline
|
lucascs wrote:Estamos usando o XStream normal, portanto com o XPP parser, e para JSon estamos usando o JSonHierarchicalDriver, que não precisa do jettinson...
Mas você pode estender o serializer e criar o XStream do jeito que você quiser, passando outro ReflectionProvider, outro Driver, etc...
Essa é uma das razões mais fortes de eu amar o vraptor. Está tudo lá, mas se você não gostar pode facilmente mudar com apenas uma simples classe Java.
Edufa wrote:Eu tive problemas em usar o xstream no gae, mas era algo bem especifico, se não me engano algo relacionado ao reflection, tem ou pelo menos tinha issue no site do xstream, mas até a ultima vez q eu vi ainda não tinham previsão de suporte completo para o gae, aí eu tive de compilar a minha versão do xstream com umas coisinhas a mais.
Eu tive problemas com o xstream há algum tempo quando precisei implantar um projeto em um cliente, onde a jvm era compartilhada, então as policies eram bem rígidas. O rolo que eu tive foi quando a permissões de classloader (não lembro exatamente), então tive que usar outro parser.
Abraços
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2010 16:56:20
|
yuripodho
JavaTeenager
Membro desde: 20/08/2009 08:24:13
Mensagens: 157
Offline
|
Voltando um pouco o assunto, antes no vraptor 2 chamava assim:
Agora no VRaptor3 mudei para:
Entrou no método retirar e fez tudo certo, porém não voltou para o success. Como fica isso com o VRaptor3?;
|
cada um, cada um. Mas tem cada um... |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2010 18:11:41
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 5631
Offline
|
toma cuidado com os caminhos relativos...
vc vai precisar colocar o contexto na url...
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/02/2010 10:06:25
|
yuripodho
JavaTeenager
Membro desde: 20/08/2009 08:24:13
Mensagens: 157
Offline
|
Não rolou, a url está certa. Entrou no meu Controller e executou tudo certo e só isso. Não voltou para o success do Json. Vi que tem o JsonOutjecter, tenho que usar isso? (só um chute)
|
cada um, cada um. Mas tem cada um... |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/02/2010 13:57:13
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 5631
Offline
|
Se vc tiver o Firefox, instala o Firebug nele e vê qual é o status que essa chamada ajax está retornando... se estiver dando 404 ou 500 não vai pro success...
ou da uma olhada no log pra ver se ele tá tentando redirecionar pra jsp do método (não deveria fazer isso)...
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/02/2010 14:16:42
|
yuripodho
JavaTeenager
Membro desde: 20/08/2009 08:24:13
Mensagens: 157
Offline
|
Está retornando 200 e não está retornando pra jsp
|
cada um, cada um. Mas tem cada um... |
|
|
 |
|
|