Jump to content
Fórum Script Brasil
  • 0

Carregar Dados No Jsp Ao Selecionar Opção Em Combo


barbinha

Question

Pessoal,

Na minha tela de cadastro tenho uma combobox onde o usuário escolherá uma opção e após a escolha o sistema terá que fazer uma busca no banco de dados para carregar alguns dados que já existem cadastrados sobre o registro escolhido na tela.

Como poderia fazer isso com jsp?

Tenho a seguinte classe para buscar os dados:

private static PreparedStatement sqlFind;

private static ResultSet rs;

private carro s;

public ArrayList getCarro() throws SQLException {

ArrayList listaCarros = new ArrayList();

sqlFind = connection.prepareStatement("SELECT ID, NOME, DESCRICAO, ANO " +

"FROM CARRO " +

"ORDER BY NOME");

rs = sqlFind.executeQuery();

while (rs.next()) {

Carro s = new Carro();

s.setId(rs.getInt(1));

s.setNome(rs.getString(2));

s.setDescricao(rs.getString(3));

s.setAno(rs.getInt(4));

listaCarros.add(s);

}

return listaCarros;

}

Quando o usuário selecionar o ID, que está sendo exibido no combobox, que existe nessa tabela, nos campos correspondentes da tela deverão aparecer os outros dados (nome, descricao, ano).

Muito obrigada

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Bem, para atualizar o ComboBox, ou você usa XHTML, ou um Refresh. O pessoal do HTML/CSS pode te ajudar mais com isso, se precisar. Eu nunca usei XHTML, mas com refresh seria assim: você, ao escolher, envia para o servidor a requisição de que carros listar (pelo metodo POST). Este, de posse dessa informação, prepara a lista e já monta a página com as opções corretas. No caso de nenhum filtro ser mencionado (como é o caso de quem abriu a página pela primeira vez), você não mostra o segundo combobox. Uma terceira opção seria fazer com JavaScript. No caso, então, os vetores dentro do script seriam montados dinâmicamente pelo JSP com os dados recebidos do bd. wink.gif

ps.: O seu código está com alguns problemas bem visiveis. Não chegam a atrapalhar agora, mas, em um futuro próximo, podem te dar muita dor de cabeça.

Primeiro: SQL dentro do código nunca é uma coisa boa. Se você mudar de banco de dados, precisará recompilar as classes. Isso se você ainda lembrar aonde estavam as consultas. O ideal é criar um objeto que gerencie todas as conexões e devolva as listas prontas. Esse objeto leria as consultas SQL de um arquivo XML, por exemplo, bem como os parametros de conexâo. Assim, se você mudar o BD, basta editar o XML.

Segundo: O objeto que instancia um outro objeto não deve saber nada do seu funcionamento interno, deve apenas receber o resultado dos seus serviços. Fazendo como você fez (construtor vazio + javaBeans), o seu código está quebrando o encapsulamento e, portanto, violando um importante principio da OOP. Pra corrigir isso, basta colocar todos esses sets aí dentro do proprio construtor. Se houver mais de um tipo de carro, então você pode criar um Factory (se quiser, explico melhor).

[]'s

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      651.8k
×
×
  • Create New...