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?
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