Collection

18 respostas
S

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

18 Respostas

C

Como assim cara ?

Tem que ter um método dentro do servlet para retornar essa collection …

Explica melhor ae … :frowning: :?:

S

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

D
Na servlet você tem algo do tipo..
/* 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);

Depois disto no JSP tu acessa o request e pega o atributo "clientes", fazendo um cast para Collection.

Exemplo:
<!-- Recupera o Collection do Request -->
<jsp:useBean id="clientes" scope="request" class="java.util.Collection" />

  <%
     Iterator iClientes = clientes.iterator();
     // ... 
  %>
R

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.

R

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

S

Po cara valeu mesmo !!!
vou tentar do geito que vc falou, m as desde ja muito obrigado

R

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

S

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 ?

S

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 ?

R

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

S

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

M

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 ) );
S

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

M

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:

ArrayList list = new ArrayList();

list.add( new Cliente( "nome", telefone ) );

think OO! :cool:

S

e como vou fazer para recupera-lo e manuzea-lo no jsp.

M

como foi dito anteriormente, além de session, tu pode usar o request,

request.setAttribute( "minhaLista", lista );

// ----------------------------------

ArrayList listaNoJsp = ( ArrayList ) request.getSttribute();
R

Realmente para passar mais de um dado para o ArrayList, vc precisa criar uma classe com estes atributos e inserir na ArrayList.

Ex:
/**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.*/

Espero ter ajudado...

S

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

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