Colleation

15 respostas
S

ola,
gostaria de saber como faco para recuperar uma collection que vem de um servlet.

15 Respostas

Rafael_Steil

… sendo mais especifico… ?

Rafael

S

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

cv1

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).

S

E como vou recupera-la na minha pagina jsp ?, eu colequei a minha list como atributo. ex: request.getAttribute(“lista”, listadecolecoes);

rodrigo_gomes

request.setAttribute(“lista”, listadecolecoes); //colocando no atributo request

request.getAttribute(“lista”); //recuperando

S

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

rodrigo_gomes

não entendi o que vc quer…
collection que acesse uma tabela? que tabela?

você já tentou fazer de alguma forma?

Abraços

S

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

E

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.

E

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…

S

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.

_fs
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.

S

Entao como vou fazer para poder lista a minha colecao !!!

rodrigo_gomes

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

S

po cara valeu !!!
vou tentar deste geito !!!

Criado 9 de setembro de 2004
Ultima resposta 15 de set. de 2004
Respostas 15
Participantes 6