Preenchendo combo

8 respostas
V

Boa dia a todos,

To precisando preencher meu combo com o nome do funcinaorio da empresa.

Soh que nao esta funcionando!

Alguem poderia me ajudar?

Método da classe DAO

public static ArrayList montaComboFuncionario() {

try {
		ArrayList comboList = new ArrayList();
		ResultSet rsCombo = comandoCombo.executeQuery();
		
		while(rsCombo.next()) {
			comboList.add(rsCombo.getInt("id_epi_tb"), rsCombo.getString("nome_funcionarios_tb"));
		}

		return comboList;
	} catch (SQLException ex) {
		ex.printStackTrace();
	}
	return null;
}

}

########################################

Uso no html (jsp)

<% out.println(""); out.println("Escolha um funcionário"); List list = EpiDAO.montaComboFuncionario(); for(Iterator iter = list.iterator(); iter.hasNext(); ) { Epi epi = (Epi)iter.next(); out.println(""+ epi.getIdFuncionario() +""); } out.println(""); %>

Muito Obrigado…

Vinicius

8 Respostas

Pedrosa

Evite scriplets, passa uma lista no request e monte com JSTL:

Use a tag forEach do JSTL, no seu metodo que monta a combo retorne uma lista do objeto equivalente, que no seu caso parece ser Funcionario na classe DAO.

public List<Funcionario>seuMetodo(){
     List<Funcionario> funcionarios = new ArrayList<Funcionario>();
     ...
     while(rs.next()){
           Funcionario funcionario = new Funcionario();
           funcionario.setId(rs.getInt("nomeColuna"));
           ...
           funcionarios.add(funcionario);
     }
     return funcionarios;
    
}

No request passa a lista:

request.setAttribute("funcionarios",new SuaClasseDAO.metodo());

JSP mais limpo e sem código Java

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
...
<select name="funcionario">
<option value="">.. Selecione ..</option>
<c:forEach var="funcionarios" items="${funcionarios}">
    <option value="${funcionarios.id}" >${funcionarios.descricao}</option>
</c:forEach>
</select>

Para utilizar o JSTL é preciso adicionar seus jars no projeto, que são jstl.jar e standard.jar.

V

Onde posso baixar os jars (jstl.jar e standard.jar) ?

Muito Obrigado.

Pedrosa

http://jakarta.apache.org/taglibs/doc/standard-doc/GettingStarted.html

V

Boa tarde!

Nesse trecho aqui…

<c:forEach var=“funcionarios” items="${funcionarios}">

${funcionarios.descricao}

</c:forEach>

os atributos id e descricao sao propriedade da classe funcionario ou esse é o nome no banco de dados?

O meu fico assim:

<c:forEach var=“combo” items="${combo_funcionarios}">

${combo.nomeFuncionario}

</c:forEach>

So que quando vai carrega a pagina…ela carrega soh metade…soh ate a linha:

${combo.nomeFuncionario}

e caso eu retire essa linha…ele carrega a pagina normal…

Sabe o q pode ser ?

Muito Obrigado.

H
<option value="${combo.idFuncionario}" >${combo.nomeFuncionario}</option>

Dentro do seu Pojo Funcionario , os atributos estão iguais ao que você está chamando.

Exemplo:

public class Funcionario {
     private Long idFuncionario;

     private String nomeFuncionario;

     // métodos getters e setters dos atributos.
}

Pode ser isto que está acontecendo.

V

Cara…
O combo funciono perfeito…
:smiley:

Soh que agora surgiu outro problema…
Como faço para selecionar a opcao do combo quando eu edito uma pagina?

Tipo…vem a opcao 2 do banco…quando marco ela?

Muito Obrigado.

Pedrosa

Use o <c:if>:

Ex:

<c:forEach var="usuarios" items="${usuarios}">
<option value="${usuarios.codigo}" <c:if test="${usuarios.codigo == codigo}">selected</c:if>>${usuarios.nome}</option>

</c:forEach>
V

Boa tarde,

Meu codigo esta assim:

<option value="${combo.idCliente}" selected >${combo.nomeFantasia}

Sendo que osDiversos é um objeto da classe OsDiversos e cliente uma propriedade dela.
É assim?

Pq ele nao esta trazendo nada => osDiversos.cliente <= nesse trecho de codigo.

Muito Obrigado.

Criado 24 de setembro de 2007
Ultima resposta 26 de set. de 2007
Respostas 8
Participantes 3