ola,
gostaria de saber como faco para recuperar uma collection que vem de um servlet.
Como assim cara ?
Tem que ter um método dentro do servlet para retornar essa collection …
Explica melhor ae … :?:
eu tenho uma servlet que faz uma consulta ao bd e armazena em uma List gostaria de saber como faco para enviar essa list para o jsp e la manuzea - la
Na servlet você tem algo do tipo…
[code]/* recupera uma collection (clientesDAO.getAll()) e adiciona como um atributo do request*/
request.setAttribute("clientes",clientesDAO.getAll());
/* dispacha para o JSP */
RequestDispatcher rd = getServletContext().getRequestDispatcher("/consultaclientes.jsp");
rd.forward(request, response);[/code]
Depois disto no JSP tu acessa o request e pega o atributo “clientes”, fazendo um cast para Collection.
Exemplo:
[code]<!-- Recupera o Collection do Request -->
<jsp:useBean id="clientes" scope="request" class="java.util.Collection" />
<%
Iterator iClientes = clientes.iterator();
// …
%>[/code]
No Servlet
request.setAttribute("nome_do_atributo_a_sua_escolha",suaLista);
RequestDispatcher rd = request.getRequestDispatcher("/Caminho e nome do seu jsp.jsp");
rd.forward(request, response);
No JSP
<%=
ArrayList lista = (ArrayList) request.getAttribute ("nome_do_atributo_que_voce_escolheu_no_servlet");%>
Espero ter ajudado.
Puts cara, foi mal, eu nao me liguei que o que vc queria passar era uma collection, mas em todo caso, o procedimento e o mesmo, so trocar de ArrayList para Collection, nao esquecendo de importa-la no jsp.
Desculpe novamente,
Flw
Po cara valeu mesmo !!!
vou tentar do geito que vc falou, m as desde ja muito obrigado
Não cara, acho que eu estava dormindo quando respondi isto ontem. Na verdade o que vc pediu é como passar uma lista, então, o exemplo que eu descrevi deve funcionar… eu espero…, pois um List é uma collection…
Flw
Cara o metodo funcionou, mas agora me deparei com um outro problema
pois preciso fazer o seguinte, enviar uma unica List com o nome e a idade de uma pessoa
ex:
List pessoa = new ArrayList();
pessoa.add(nome, idade);
nao consigo fazer isto, preciso muito disto vc poderia me ajudar + uma vez ?
Cara o metodo funcionou, mas agora me deparei com um outro problema
pois preciso fazer o seguinte, enviar uma unica List com o nome e a idade de uma pessoa
ex:
List pessoa = new ArrayList();
String nome = “fulano de tal”;
int idade = 20;
pessoa.add(nome, idade);
nao consigo fazer isto, preciso muito disto vc poderia me ajudar + uma vez ?
Cara, vc nao precisa necessariamente passar um ArrayList…
vc pode passar normalmente um array de string contendo nomes, e outro array de inteiros contendo a idade.
Obs: vc pode passar qtos atributos vc quiser…
e para pegar no jsp é da mesma forma…
Flw
Mas ai eu teria que criar duas List, e eu nao gostaria d fazer isto
eu gostaria que fazer com que uma unica List ou Collection recebece dois valores tipo linha e coluna .
Ex:
List pessoa = new ArrayList();
String nome = “fulano de tal”;
int idade = 20;
pessoa.add(nome, idade);
na hora de passar e so :
request.setAtributte(“pessoa”, List);
dica, fala uma classe pessoa com esses atributos q tu quer, ai sim, tu adiciona uma Pessoa no teu ArrayList, por exemplo:
meuList.add( new Pessoa( "João", 20 ) );
Cara vc poderia me mandar um exemplo bem simples de collection que acesse uma tabela que possua mais de uma coluna.
por preciso muito deste exemplo !!!
faça dessa tabela um Objeto, por ex, se tu tens a tabela Cliente com as colunas nome e telefone, faça uma classe Cliente com os atributos nome e telefone, ai, qnd for jogar pra Collection, pode fazer:
[code]ArrayList list = new ArrayList();
list.add( new Cliente( "nome", telefone ) );[/code]
think OO!
e como vou fazer para recupera-lo e manuzea-lo no jsp.
como foi dito anteriormente, além de session, tu pode usar o request,
[code]request.setAttribute( "minhaLista", lista );
// ----------------------------------
ArrayList listaNoJsp = ( ArrayList ) request.getSttribute();[/code]
Realmente para passar mais de um dado para o ArrayList, vc precisa criar uma classe com estes atributos e inserir na ArrayList.
Ex:[code]
/*Classe pessoa/
public class pessoa {
private int idade = 0;
private String nome = "";
public pessoa(int idade, String nome){
this.idade = idade;
this.nome = nome;
}
public int getIdade(){
return this.idade;
}
public String getNome(){
return this.nome;
}
}
/*No servlet/
ArrayList lista = new ArrayList();
lista.add(new pessoa(idade,"nome" ));
request.setAttribute( "listaPessoa", lista );
/*No Jsp/
<%=ArrayList listaNoJsp = ( ArrayList ) request.getAttribute("listaPessoa");%>
/Nesse momento vc possui um array de objetos pessoa que contem atributos idade e nome./
[/code]
Espero ter ajudado…
Cara valeu !!!
vc praticamente fez tudo pra mim, rss …
so tem um problema como faco paginacao com collection vc tem agum exemplo pra me aranjar !!!
e que a forca esteja com vc !!!