Ajuda com include do result

10 views
Skip to first unread message

Harisson Rafael

unread,
Jul 23, 2016, 7:54:53 PM7/23/16
to caelum-...@googlegroups.com
Boa noite,

Estou usando Vraptor a pouco tempo e gostaria da ajuda para resolver um probleminha no include do result. No meu result optei por sempre mandar uma classe e nela tenho um Object object. Para os casos onde utilizo apenas os atributos primários não tive problema. Estes foram serializados sem problema, mas para Objetos dentro deste Object não foi possível, pois para isso seria necessário eles estarem no include para serem serializado. Mas como object não possue os Objetos não sei como acessa-los.

Exemplo:
Desejo retornar o objeto Cidade que possue um objeto Estado nele. A minha classe que será serializada tem o object q será preenchida com o objeto Cidade. Gostaria de serializar o objeto Estado tbm.

Aguém pode me ajudar? Isso é possível?


--
Atenciosamente,

Harisson Rafael

Carlos Spohr

unread,
Jul 24, 2016, 7:47:41 AM7/24/16
to caelum-...@googlegroups.com

Bom dia,

Não entendi direito, mas quando você inclui uma classe qualquer no result, você acessa os atributos dela através dos próprios atributos, lembrando que eles devem atender o padrão do java beans, necessitam de um get  / set(não para o result)

Na sua view JSP, basta fazer lá por exemplo:

Cidade: ${cidade.nome}

Uf: ${cidade.estado.sigla}


--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vrapto...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/caelum-vraptor.
Para mais opções, acesse https://groups.google.com/d/optout.

Harisson Rafael

unread,
Jul 24, 2016, 10:59:40 AM7/24/16
to caelum-...@googlegroups.com
Bom dia,

Realmente foi confuso até para escrever como estou fazendo.

Resumindo:

Tenho uma Classe Response com os atributos: List<Message> messages e Object object.

Quando faço algum método preencho a lista de message e o object com o objeto que desejo, cidade por exemplo. Se precisar apenas dos dados da classe cidade não tem problemas, acesso normalmente.

response.setObject(cidade);

result.use(Results.json()).from(response, "response").include("object", "messages").serialize();

Mas quando desejo acessar os dados do objeto estado que esta dentro do objeto cidade não consigo.

response.setObject(cidade);

result.use(Results.json()).from(response, "response").include("object", "messages", "estado").serialize();

Gostaria de saber se tem como acessa-lo.

OBS.: Espero que tenha conseguido esclarecer o que estou pensando em fazer.

--
Atenciosamente,

Harisson Rafael

Clairton Rodrigo Heinzen

unread,
Jul 25, 2016, 7:02:48 AM7/25/16
to caelum-vraptor, harisso...@gmail.com
Bom Dia.
Harisson, pelo que entendi, você poderia estar criando um serializer customizado do GSON, mais detalhes em https://sites.google.com/site/gson/gson-user-guide#TOC-Custom-Serialization-and-Deserialization, e anotar com @br.com.caelum.vraptor.serialization.gson.RegisterStrategy.

Atenciosamente
Clairton

Ivo Sestren Junior

unread,
Jul 25, 2016, 7:09:40 AM7/25/16
to caelum-...@googlegroups.com, harisso...@gmail.com
Tenta neste caso .include("object", "object.estado")

--

Harisson Rafael

unread,
Jul 25, 2016, 5:39:20 PM7/25/16
to caelum-...@googlegroups.com
Boa noite

@Ivo Sestren Junior, dá o erro: java.lang.IllegalArgumentException: Field path 'object.estado' doesn't exists in class java.lang.Object.

@Clairton Rodrigo, vou olhar.

Caso encontre alguma solução, falarei.

Obrigado!
--
Atenciosamente,

Harisson Rafael

Reply all
Reply to author
Forward
0 new messages