[Resolvido] Problema VRaptor + Appengine

2 respostas
edwlipe

Olá, estou iniciando o desenvolvimento de uma aplicação com o VRaptor na AppEngine e estou com um problema na passagens de parâmetros da tela para o controller.
Estou com o seguinte jsp:

<label>${contato.nome} <input name="contato.id" type="radio" value="${contato.id}"/></label>

o controller recebe o contato:

public void save(Contato contato) { System.out.println("contato: " + contato.id); }

E o resultado:

contato: null

Olhando no firebug, o parâmetro é passado de uma forma estranha (coisa do gae, e não sei como resolver)

a classe está assim:

//imports
@PersistenceCapable
public class Contato {
@PrimaryKey
	@Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
	private Key id;
	
	@NotNull
	@Size(min=4)
	@Persistent
	private String nome;

	//getters e setters
}

como eu deve fazer isso de forma que os relacionamentos funcionem (sempre dá erro quando eu troco de Key para Long)?

2 Respostas

Lucas_Cavalcanti

vc precisa escrever um Converter do VRaptor pra classe Key pra isso funcionar

edwlipe

Resolvi esse problema ontem mudando para o id para Long e adicionando a anotação @Unowned.

Não sei qual das duas formas é melhor ou porque. Depois da sua resposta fui atrás de um converter que fizesse isso e encontrei esse link.

fica aí para quem passar pelo mesmo problema:
https://groups.google.com/forum/#!msg/caelum-vraptor/YuELnALrDvw/NIb0wxvHrBMJ

resumindo: com.google.appengine.api.datastore.KeyFactory.keyToString((Key) value) e com.google.appengine.api.datastore.KeyFactory.stringToKey(value);

Criado 11 de setembro de 2012
Ultima resposta 12 de set. de 2012
Respostas 2
Participantes 2