Pedrosa 24 de set. de 2007
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.
viniciusst 24 de set. de 2007
Onde posso baixar os jars (jstl.jar e standard.jar) ?
Muito Obrigado.
Pedrosa 24 de set. de 2007
viniciusst 24 de set. de 2007
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.
viniciusst 26 de set. de 2007
Cara…
O combo funciono perfeito…
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 26 de set. de 2007
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>
viniciusst 26 de set. de 2007
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.