VRaptor - disponibilizar para a view mais de uma informação

Nesta parte da apostila http://www.caelum.com.br/apostila-vraptor-hibernate/vraptor/#7-10-exercicios

No exercício 10, eles falam em disponibilizar mais de uma informação para a view, alguém poderia fazer ou explicar uma implementação disso para mim?

http://vraptor.caelum.com.br/pt/docs/view-e-ajax/

vc pode incluir uma variavel ou um objeto

result.include("mensagem", "Alguma mensagem");

jsp

<p>${mensagem}
result.include("user", new User());

jsp:

<p>${user.login}</p>

Não haveria uma maneira mais simples sem usar esses controller do manual q vc enviou?
PQ no caso eu tava pensando em fazer num caso como este :

[code]package br.com.caelum.goodbuy;

import java.util.ArrayList;
import java.util.List;

import br.com.caelum.goodbuy.dao.ProdutoDao;
import br.com.caelum.goodbuy.modelo.Produto;
import br.com.caelum.vraptor.Resource;

@Resource
public class Mundo {

public String boasVindas() {
return “olá mundo!”;
}

public List paises() {
List result = new ArrayList();
result.add(“Brasil”);
result.add(“Portugal”);
result.add(“Japão”);
result.add(“Canadá”);
result.add(“Paraguai”);
return result;
}
public int num(){
return 5;
}
public Produto produto(){
ProdutoDao dao = new ProdutoDao();
Produto produto = dao.procura(2L);

   return produto;
   }

}[/code]

No caso, eu queria retornar mais informação do q apenas o objeto “produto”

eae amigo blz ?

Então pelo vraptor para retornar um objeto vc tem que usar o result mas acredito que ele não seja um empecilho porque você pode usar quantos quiser e é muito simples.

ex:

[code]
package br.com.caelum.goodbuy;

import java.util.ArrayList;
import java.util.List;

import br.com.caelum.goodbuy.dao.ProdutoDao;
import br.com.caelum.goodbuy.modelo.Produto;
import br.com.caelum.vraptor.Resource;

@Resource
public class Mundo {

public String boasVindas() {
result.include(“nomeVariavel”, “Olá mundo!”);// se voce colocar ${nomeVariavel } no JSP ele vai exibir "Olá mundo!"
return “olá mundo!”;
}

public List paises() {
List resultado = new ArrayList();
resultado.add(“Brasil”);
resultado.add(“Portugal”);
resultado.add(“Japão”);
resultado.add(“Canadá”);
resultado.add(“Paraguai”);
result.include(“resultado”, resultado);//no seu jsp ${resultado } é uma list
return resultado;
}
public int num(){
result.include(“numero”, 5);//no seu jsp ${numero } exibira 5
return 5;
}
public Produto produto(){
ProdutoDao dao = new ProdutoDao();
Produto produto = dao.procura(2L);
result.include(“produto”, produto);//no seu jsp vc podera acessar os atributos de produto usando ${produto.nomeAtributo }
return produto;
}

}[/code]

[code] package br.com.caelum.goodbuy;

import java.util.ArrayList;  
import java.util.List;  
  
import br.com.caelum.goodbuy.dao.ProdutoDao;  
import br.com.caelum.goodbuy.modelo.Produto;  
import br.com.caelum.vraptor.Resource;  

import br.com.caelum.vraptor.Result;
  
@Resource  
public class Mundo {  

   private final Result result;
   private ProdutoDAO produtoDAO;

   public Mundo(Result result, ProdutoDAO produtoDAO) {
       this.result = result;
       this.produtoDAO = produtoDAO;
   }
     
   /**
    *  Este metodo vai retornar p/ jsp a variavel no request ${produto} e ${teste}
    */
   public Produto produto(){  

        result.include("teste", "Outro atributo qualquer que estara disponivel no seu JSP");
     
        // Retorno que já exisita... apenas reescrevi de uma forma diferente
        return produtoDAO.procura(2L);  

       }  
     
  
}  

[/code]

Abraços

[quote=erickdeoliveiraleal]Não haveria uma maneira mais simples sem usar esses controller do manual q vc enviou?
PQ no caso eu tava pensando em fazer num caso como este :

[code]package br.com.caelum.goodbuy;

import java.util.ArrayList;
import java.util.List;

import br.com.caelum.goodbuy.dao.ProdutoDao;
import br.com.caelum.goodbuy.modelo.Produto;
import br.com.caelum.vraptor.Resource;

@Resource
public class Mundo {

public String boasVindas() {
return “olá mundo!”;
}

public List paises() {
List result = new ArrayList();
result.add(“Brasil”);
result.add(“Portugal”);
result.add(“Japão”);
result.add(“Canadá”);
result.add(“Paraguai”);
return result;
}
public int num(){
return 5;
}
public Produto produto(){
ProdutoDao dao = new ProdutoDao();
Produto produto = dao.procura(2L);

   return produto;
   }

}[/code]

No caso, eu queria retornar mais informação do q apenas o objeto “produto”[/quote]

vc pode dar vários includes!

e pode mandar uma lista pelo “include” tb!

 public void paises() {
     List<String> paises = new ArrayList<String>();
     paises.add("Brasil");
     paises.add("Portugal");
     paises.add("Japão");
     paises.add("Canadá");
     paises.add("Paraguai");
     result.include("paises", paises);
     // e tabem pode add outro include
     result.include("teste", "alguns países");
   }

de boa até aih?

vc agora pode pegar essa lista no seu JSP