Serialização VRaptor

2 respostas
J

Boa noite, pessoal gostaria de saber se é possível serializar os dados e jogar no JSP?

Por exemplo:

public void list() {
	List<Pais> paisList = paisDAO.findAll();
	result.use(Results.json()).from(paisList).serialize(); //vejam que aqui será retornado um json, então não vai ir para meu jsp list.

	}

eu gostaria de fazer o seguinte;
Serializar os dados e setar no jsp result.include("dados",dadosSerializados); //assim eu pegaria la no meu jsp ${dados}
é possivel fazer isso?

obrigado.

2 Respostas

Hebert_Coelho

Precisa serializar? Você não pode só colocar no request não? (OBS.: não sei como funciona o VRaptor mas colocar no request é conceito básico de web 8) )

almircampos

Oi, Java_Terminator,

Depende muito do jeito que você vai usar o resultado no JSP. De imediato, penso em quatro casos:

1 - Você quer usar os dados como uma lista no seu JSP. Nesse caso usaria algo como:

List&lt;Dado&gt; dados = new ArrayList&lt;Dado&gt;();
dados = dadoDAO.lista();
result.include( "dados", dados );

2 - Você quer receber, por exemplo, um XML no seu JSP, como uma String (pode ficar meio estranho):

List&lt;Dado&gt; dados = new ArrayList&lt;Dado&gt;();
dados = dadoDAO.lista();
XStream xstream = new XStream( new DomDriver() );
String xml = xstream.toXML( dados );
result.include( "dados", xml );

3 - Você receber, por exemplo, um XML num script Ajax dentro do seu JSP:

List&lt;Dado&gt; dados = new ArrayList&lt;Dado&gt;();
dados = dadoDAO.lista();
result.use( Result.xml() ).from( dados ).serialize();

4 - O último caso é, na verdade, uma outra forma de você usar os outros três, caso você queira serializar uma classe especifica (e não uma lista):

Dado dado = new Dado();

// Para o caso 1, acima
result.include( "dado", dado );

// Para o caso2, acima
XStream xstream = new XStream( new DomDriver() );
String xml = xstream.toXML( dado );
result.include( "dado", xml );

// Para o caso 3, acima
result.use( Result.xml() ).from( dado ).serialize();
------------------------------

Algum desses é parecido com o que você precisa?

Sds,
Almir.

Criado 23 de maio de 2012
Ultima resposta 23 de mai. de 2012
Respostas 2
Participantes 3