| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/10/2006 19:43:34
|
Adriana Cardoso
JavaChild
Membro desde: 20/11/2004 19:54:08
Mensagens: 143
Offline
|
Olá,
Pessoal tenho uma classe chamada Proposta.java que lista o campo da minha tabela (MYSQL) chamada Nome que tem o método getListar1 que joga os dados da coluna do meu BD.
[/code]
public Vector getListar1(){
Vector x = new Vector();
try {
// Joga dados no vetor
PreparedStatement sql = conn.prepareStatement("select nome from clientes ");
ResultSet rs = sql.executeQuery();
while (rs.next()) {
x.addElement(new Proposta(rs.getString("nome")));
}
rs.close();
}
catch (SQLException ex) {
System.out.println(ex.getMessage());
}
return x;
}
}[code]
Na minha jsp está assim para listar estes nomes dentro de um Combobox usei o jstl para fazer isso. Acima da página já adicionei o jstl/fmt e o jstl/core e tbm os devidos jars.
<hr>
<jsp:useBean id="proposta" scope="page" class="cadastro.Proposta"/>
<select name="proposta">
<c:forEach var="z" items="${proposta.listar1}">
<option> ${z} </option> // aqui não pega a coluna nome!!
</c:forEach>
</select>
<hr>
Só que quando visualizo a página no Combobox aparece isso:
<option> cadastro.Proposta@1b2d7df </option>
<option> cadastro.Proposta@7a9224 </option>
<option> cadastro.Proposta@110b640 </option>
A var ${z} não está pegando o valor . O que pode ser este erro sabe porque eu testei usando uma tabela com o mesmo projeto e funcionou direitinho ,será que o select no caso do Combobox não busca muitos valores, precisa colocar mais alguma linha de comando dentro desse
select ?
Um grande abraço, espero ajuda mas tenho certeza que conseguirei a turma do GUJ sempre foi muito prestativa comigo...
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/10/2006 20:41:53
|
fcoury
JavaChild
![[Avatar]](/images/avatar/13da2193bcd455bb894871aec1815047.jpg)
Membro desde: 17/10/2006 16:24:36
Mensagens: 142
Localização: Campinas, SP - Brazil
Offline
|
Você está usando o objeto, e não um atributo dele...
Troque:
Por:
E veja se funciona...
|
Felipe Gonçalves Coury
--
Arquivos texto em java: http://jfilehelpers.com
Visite meu blog: http://blogs.felipecoury.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/10/2006 22:13:31
|
Adriana Cardoso
JavaChild
Membro desde: 20/11/2004 19:54:08
Mensagens: 143
Offline
|
Oi Felipe,
Fiz desse jeito que vc falou troquei por ${z.getNome()} mas agora dá o seguinte erro :
org.apache.jasper.JasperException: /proposta.jsp(28,17) The function getNome must be used with a prefix when a default namespace is not specified.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/10/2006 15:02:32
|
Adriana Cardoso
JavaChild
Membro desde: 20/11/2004 19:54:08
Mensagens: 143
Offline
|
Olá por fvr alguem tem um exemplo ou um pequeno projeto que usa o jstl com select para enviar por email ....para mim assim tento fazer aqui ..
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/10/2006 15:36:27
|
David
JavaEvangelist
![[Avatar]](/images/avatar/77431ca7981f1f1483ae8a58bcbb6e0e.jpg)
Membro desde: 18/03/2005 13:10:33
Mensagens: 450
Localização: Natal/RN
Offline
|
Adriana Cardoso wrote:Fiz desse jeito que vc falou troquei por ${z.getNome()} mas agora dá o seguinte erro :
O certo seria ${ z.nome }.
|
David Pereira
Engenheiro de Computação - UFRN
Mestre em Engenharia Elétrica
Doutorando em Engenharia Elétrica |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/10/2006 17:37:44
|
Adriana Cardoso
JavaChild
Membro desde: 20/11/2004 19:54:08
Mensagens: 143
Offline
|
Oi David,
Teste desse jeito e continua aparecendo :
<option> cadastro.Proposta@13d9460 </option>
Insisto alguem tem por fvr um peqeno projeto usando select , nao é falta de procura estou ha bastante tempo garimpando na net mas nao achei nada para solucionar o caso.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/10/2006 17:58:32
|
Pedrosa
JWizard
![[Avatar]](/images/avatar/2b763288faedb7707c0748abe015ab6c.jpg)
Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline
|
Vc precisa criar o ben e popular onde vc faz o while na sua classe
//NomeVO
Agora no seu jsp vc recebe o nome da lista via request e itera:
A sua camada view não precisa saber de que classe vem, apenas recebe uma lista, ou seja nem precisa dessa linha:
passe a lista no controller
Note que esse nome é a variavel que foi criada no bean, assim deve funcionar agora!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/10/2006 20:39:03
|
Adriana Cardoso
JavaChild
Membro desde: 20/11/2004 19:54:08
Mensagens: 143
Offline
|
oi Pedrosa,
Entao eu havia criado sim a classe Bean entao ai eu fiz dessa forma acrescentei o comando que vc passou : Esta classe herda da Conexao com o BD
public class Proposta extends Conexao{
private String nome;
public Proposta() {
conecta();
}
// ====== gets e sets===========
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
// Chama lista do bd para o ComboBox
public List getListar() throws SQLException {
String strSQL = "select * from clientes";
PreparedStatement stmt = this.conn.prepareStatement(strSQL);
ResultSet rs = stmt.executeQuery();
List list = (List) new ArrayList();
while (rs.next()) {
Proposta dados = new Proposta();
dados.setNome(rs.getString("nome"));
list.add(dados);
}
rs.close();
stmt.close();
return list;
}
}
Depois na jsp:
<jsp:useBean id="proposta" scope="request" class="cadastro.Proposta"/>
<select name="proposta">
<c:forEach var="listar" items="${listar}">
<option value="${listar.nome}">${listar.nome}</option>
</c:forEach>
</select>
A minha duvida é sobre esta instância do Bean como vc pode ver acima nesse caso fiz aqui direto na jsp e não na Controller.
Sobre o que vc falou request.setAtributte("nomeLista", new Proposta().getNomes());onde eu adiciono esta linha na propria classe Proposta ?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/10/2006 17:52:32
|
Adriana Cardoso
JavaChild
Membro desde: 20/11/2004 19:54:08
Mensagens: 143
Offline
|
Olá amigos,
Então agradeço a ajuda de vcs , e encontrei a solução é o seguinte acabei fazendo a minha lista usando Vector mesmo como havia feito de principio.
Mas na instrução do select esqueci de colocar order by nome assim ele seleciona o item desejado da tabela Clientes - no caso Nomes.
Outra coisa no select na jsp usei da seguinte forma , instanciei o Bean na propria jsp acho mais fácil do que na Controller.
Mas agradeço a todos até mais......
|
|
|
 |
|
|