ola,
gostaria de saber como faco para recuperar uma collection que vem de um servlet.
Colleation
15 Respostas
… sendo mais especifico… ?
Rafael
Tenho um sevlet que realiza uma pesquisa no banco e armazena os dados em uma List, como faco pra enviar esta list para uma pagina jsp e nessa jsp como faco para pega-la.
se nao for incomodo gostaria de um exemplo simples sobre Collection
Voce pode colocar a List como atributo do request (veja os metodos HttpServletRequest.setAttribute e .getAttribute), ou colocar na sessao (HttpSession.setAttribute e getAttribute, tambem).
E como vou recupera-la na minha pagina jsp ?, eu colequei a minha list como atributo. ex: request.getAttribute(“lista”, listadecolecoes);
request.setAttribute(“lista”, listadecolecoes); //colocando no atributo request
request.getAttribute(“lista”); //recuperando
Cara vc poderia me mandar um exemplo bem simples de collection que acesse uma tabela que possua mais de uma coluna,
e que esta collection esteja sendo usada uma pagina jsp
por preciso muito deste exemplo
não entendi o que vc quer…
collection que acesse uma tabela? que tabela?
você já tentou fazer de alguma forma?
Abraços
possuo uma tabela pessoa que possui as colunas nome e idade.
em um servlet eu criei uma colection mas nao consigo armazenar em uma unica List essas duas colunas, gostaria de um exemplo que me ajudase com isto
Vou tentar dar uma resposta bem mastigada, mas nao acustuma nao, que a proxima nao é de graca :twisted: .
Sua Pergunta:
[color=“blue”]
possuo uma tabela pessoa que possui as colunas nome e idade.
em um servlet eu criei uma colection mas nao consigo armazenar em uma unica List essas duas colunas, gostaria de um exemplo que me ajudase com isto.
[/color]
Para armazenar duas colunas em uma lista criar uma clase que tenha os atributos q vc precisa como no exemplo abaixo:
/**
* A classe possue um metodo get e um metodo set por cada atributo
* Isso é muito importante principalmente quando se utiliza taglibs.
*/
public class Pessoa {
private String nome;
private Integer idade;
public Pessoa(){}
public Integer getIdade() {
return idade;
}
public void setIdade(Integer idade) {
this.idade = idade;
}
... //falta implementar get y set de nome
}
Depois voce popula a lista no seu servlet e seta o atributo no request o na sessao, com no exemplo:
/*
* Populando sua lista
*/
while (rs.next()) {
Pessoa pessoa = new Pessoa();
pessoa.setIdade(new Integer(rs.getInt("idade")));
pessoa.setNome(rs.getString("nome"));
suaLista.add(pessoa);
}
/*
* Enviando sua lista pelo request o sessao
*/
// colocar a lista na sessao;
ArrayList suaLista = request.getSession().setAttribute("nomeAtributo", suaLista);
// colocar a lista no request;
ArrayList suaLista = request.setAttribute("nomeAtributo", suaLista);
Depois é so pegar o conteudo no JSP:
// se vc colocou a lista na sessao;
Collection suaLista = (ArrayList) request.getSession().getAttribute("nomeAtributo");
// se vc colocou a lista no request;
Collection suaLista = (ArrayList) request.getAttribute("nomeAtributo");
agora é so interactuar com sua lista e pegar o conteudo dos atributos nos campos das tabelas…
Existem muitas formas de popular uma tabela, pode utilizar alguma taglib como as de Struts o JSTL por exemplo, fazer tudo na mao com scriplets etc…
Acho que o resto vc se garante.
desculpa ai pela acho que a penutima frase esta mal. (misturei com espanhol) :?
o texto é:
agora é so interactuar com sua lista e incluindo o conteudo dos atributos nos campos das tabelas…
Cara valeu pela forca !!!
mas agora to um problema chato, nao consigo listar a minha colecao !!
Collection listDeficiencias = (ArrayList) request.getAttribute (“lista”);
Iterator lista = listDeficiencias.iterator();
while (lista.hasNext())
{
String deficiencia = (String) lista.next();
out.println(deficiencia);
}
OCORRE O SEGUINTE ERRO !!!
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
admin.Sdeficiencias.service(Sdeficiencias.java:49)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.ClassCastException
org.apache.jsp.confdefic_jsp._jspService(confdefic_jsp.java:56)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
admin.Sdeficiencias.service(Sdeficiencias.java:49)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
root cause
java.lang.ClassCastException
Você está tentando transformar em String um objeto que não é String. Ou seja, a sua Collection possui objetos diferentes do que você espera.
Entao como vou fazer para poder lista a minha colecao !!!
se você fez como o eliondavi mostrou acima, sua lista tem objetos da classe pessoa, entao na hora de mostrar você tem que tratalos-los como tal.
while (lista.hasNext())
{
Pessoa pes = (Pessoa) lista.next();
out.println(pes.getNome());
out.println(pes.getIdade());
}
Abraços
po cara valeu !!!
vou tentar deste geito !!!