Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

barbinha

Listar dados em combo

Recommended Posts

Pessoal,estou tentando listar dados do banco em um combobox, mas nada é exibido.Em que parte do html deve ser inserido o scriplet para que seja exibida a lista corretamente?Estou colocando da seguinte forma:<tr> <td> <select name="teste" class="edit2"> <option>Selecione</option> <option> <% try { List listaSts = sacDAO.getSt(); Iterator iSts = listaSts.iterator(); Sac p; while ( iSts.hasNext() ) { p = (Sac)iSts.next(); } %> </option> </select> <% } catch (Exception e) { out.println("Ocorreu um erro!"); } %> </td></tr>Coloquei page import da classe, o método está ok. Testei exibir a lista dos dados do banco na página, fora do combobox, em forma de tabela e listou corretamente, o problema está em exibir dentro do combobox.O que está errado?Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,estou tentando listar dados do banco em um combobox, mas nada é exibido.Em que parte do html deve ser inserido o scriplet para que seja exibida a lista corretamente?Estou colocando da seguinte forma:<tr> <td> <select name="teste" class="edit2">                                                      <option>Selecione</option>      <option>  <%                      try                       {                          List listaSts = sacDAO.getSt();                          Iterator iSts = listaSts.iterator();                                                  Sac p;                          while ( iSts.hasNext() ) {                              p = (Sac)iSts.next();                        }  %>                      </option>    </select>          <%  }  catch (Exception e)  {  out.println("Ocorreu um erro!");  }  %> </td></tr>Coloquei page import da classe, o método está ok. Testei exibir a lista dos dados do banco na página, fora do combobox, em forma de tabela e listou corretamente, o problema está em exibir dentro do combobox.O que está errado?Obrigada

Olá, tenta isso!!acho que esta faltando colocar a variavel no html.
<tr>	<td>	<select name="teste" class="edit2">                                                      <option>Selecione</option>       	 <%                      try                       {                          List listaSts = sacDAO.getSt();                   Iterator iSts = listaSts.iterator();                       	                   Sac p;                          while ( iSts.hasNext() ) {                              p = (Sac)iSts.next();                          	 %>                                              <option><%=p%></option>            	 <%            }// fim do while                                      } 	 catch (Exception e)  { 	 out.println("Ocorreu um erro!");  } 	 %>		</select>  </td></tr>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renata, usando JSTL você pode usar a tag c:forEach nos objetos capturados do seu Bean

 

 

Renata, usando JSTL você pode usar a tag c:forEach nos objetos capturados do seu Bean

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, sei que será com o foreach, mas sempre usei o foreach pegando as informações que eu enviei a partir do servlet pela requisição.

 

Mas esse combo, eu queria carregar logo que abrir a página a primeira vez, sem ter passado ainda pelo servlet.

 

Nesse caso, como eu faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma classe que tenha um método que retorne uma listagem de seus objetos

 

Exemplo:

 

<jsp:useBean id="minhaClasse" class="br.test.MinhaClasse" scope="application">

<c:forEach var="item" items="${minhaClasse.listarItens}">

		  <option><c:out text="${item.codigo}"/></option>

</c:forEach>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma classe que tenha um método que retorne uma listagem de seus objetos

 

Exemplo:

 

<jsp:useBean id="minhaClasse" class="br.test.MinhaClasse" scope="application">

<c:forEach var="item" items="${minhaClasse.listarItens}">

		  <option><c:out text="${item.codigo}"/></option>

</c:forEach>

Sublyer,

 

Acho que entendi, mas não tudo. Vamos ver:

  • id="minhaClasse" é o nome da minha classe (a inicial deve ser minúscula? esse nome é obrigatório ou uma convenção?)
  • class="br.test.MinhaClasse" é o "endereço" da classe, a partir da pasta aplicacao/src/java
  • Lá no foreach eu uso o nome atribuido no id
  • E o "listarItens", seria o que? meu método que seleciona no banco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então renata, vamos la as explicações.

 

* id="minhaClasse" - é a identificação do meu bean, pode ser qualquer nome, coloquei minhaClasse pois faz referencia com classe MinhaClasse

 

* class="br.test.MinhaClasse" - Esse é o endereço da sua classe na sua aplicação, conhecido como ClassForName, que indica o caminho da sua classe utilizando por padrão o seguinte formato: nomeDoPacote.NomeDaClasse

 

* E o "listarItens"- Esse é o método que faz a consulta no banco de dados e retorna uma Lista de objetos do tipo MinhaClasse

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não disse que eu voltava? :)

 

Seguinte, dez anos depois, fui tentar novamente fazer essa parte...

 

E me deparo com a seguinte situação:

 

Tenho uma classe UnidadeDAO, onde tenho o método abaixo:

 

public ArrayList selectListAll() throws SQLException {

 

ArrayList al = new ArrayList();

UnidadeDAO ud = new UnidadeDAO();

al = ud.selectList("");

 

return al;

}

 

E tou tentando usar o "usebean" da seguinte forma:

 

<jsp:useBean id="dao" class="Modelo.UnidadeDAO" />

<c:forEach var="unidade" items="${dao.selectListAll}">

<option>

<c:out value="${unidade.nomeUnidade}" />

</option>

</c:forEach>

 

Mas é lançada a seguinte exceção:

 

org.apache.jasper.JasperException: Unable to find a value for "selectListAll" in object of class "Modelo.UnidadeDAO" using operator "."

 

O que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.