Criar ListBox em JSP

Olá, estou precisando colocar um listbox (com dados vindo do BD) na minha tela em JSP. O problema é que eu nao faço idéia nem de como colocar o list box.

Se alguém puder me ajudar a criar o list box (com qualquer dado) ficaria mto grato! Depois eu me viro para trazer os dados do BD. A princípio quero apensa criar o listbox.

Desde já agradeço

Bom dia

Então pelo que vi você não tem muito conhecimento de JSP certo ???

Faça o download da apostila da caelum http://www.caelum.com.br/download/caelum-java-web-fj21.pdf, lá tem alguns exemplos que podem te ajudar.

Flw.

Cvinicius, obrigado pela ajuda.

Então, por incrível que pareça eu até sei um pouquinho sobre JSP sim. O problema é que nunca mexi com list box em JSP e estou com dúvida de como criar e relacionar determinado campo da listbox para uma ação.

Acho que minha primeira pergunta ficou bem estranha e confusa.

Seguinte: ao colocar a list box, como eu consigo “pegar” determinada linha para realizar uma ação?

Então você quer que quando o usuário clique em um elemento no listbox, dispare um ação para o servidor ???

Caso seja realmente isso que você quer fazer, você pode fazer uma function em JS, que é acionada através do evento onchange que você deve coloca no elemento select do html, essa function faz uma requisição para os servidor e passando o valor selecionado.

Flw.

Jovem,

Vc terá que “pegar” os dados de sua tabeça e gerar o código HTML na página.
Existem métodos melhores de fazer isso, com outros frameworks, mas como sou novato na área de frameworks, tive que fazer tudo no “braço”.
Após entender esse método, seria bom aprender outros, pois inviabiliza muito fazer sistemas grandes dessa maneira. Falo isso pois estou sofrendo esse problema na pela.

Então, o primeiro caso que vc terá que saber é que em HTLM o listbox é a opção de ListMenu, compreendida pela tag .
Vou te dar um exemplo de como eu uso (e crio) um ListMenu:

[code]
Selecione a Empresa
<%
String comando = "select IDempresa, empr_raza_soci from Empresa ";
try{
Connection con = ConnectionFactory.getConnection();
Statement stmn = con.createStatement();
ResultSet rs = stmn.executeQuery(comando);

			while(rs.next())
				out.println("<option value =\""+rs.getInt("IDempresa")+"\">"+rs.getString("empr_raza_soci")+"</option>");
	
			con.close();
		}catch(Exception e){e.printStackTrace();}
 %>
</select>[/code]

Tem também um JavaScript que é acionado quando o mesmo muda de opção escolhida.
Qualquer dúvida, só falar.

DZR, muito obrigado pela sua ajuda.

consegui entender o que vc fez!! Queria saber se vc nao pode me passar o javaScript que vc ta usando. Pelo que eu vi, ele pega o ID da linha () e o redireciona para alguma pagina e assim realiza uma ação. É exatamente isso que eu preciso fazer, realizar uma ação de acordo com a linha selecionada.

Jovem,

O Script que usei peguei dessa página:

http://www.javascriptkit.com/script/cut183.shtml

O que eu fiz foi adaptá-lo para o meu código, ou seja, em vez de criar manualmente todas as opções, busquei do banco de dados as minhas ligações e criei os ídices.
Vou deixar em anexo a minha JSP que fiz esse menu.

DZR, obrigado esse JS ajudou bastante a entender algumas coisas.

Agora eu ja consigo (através de java script) a “pegar” o valor da linha do listbox, o problema é que não estou conseguindo redirecionar esse valor para outra página e assim realizar algumas ações com esse valor.

Estou usando struts no meu projeto, então preciso descobrir como redirecionar a variavel da função JS (que possui o valor pego da listbox) para o action do struts.

Qualquer dica é muito bem vinda, se alguém puder ajudar ao menos na parte de redirecionar a variavel para outra página já será de grande ajuda!!

Bem,

O que eu faço para pegar esse valor é usar um Servlet para isso (aliás, meu Servlet q faz muita coisa no sistema criado…).
Sugiro a criar um Servlet q pegue o ID do seu ListMenu e repasse para o seu Struts, como variável, como sessão… Aí vc decide o método de passagem.

Para pegar o valor, no servlet, eu uso:

String valorselecionado= (String)request.getParameter("seleempr");

O código que usei para exemplificar é esse:

[code]
Selecione a Empresa
<%
String comando = "select IDempresa, empr_raza_soci from Empresa ";
try{
Connection con = ConnectionFactory.getConnection();
Statement stmn = con.createStatement();
ResultSet rs = stmn.executeQuery(comando);

			while(rs.next())
				out.println("<option value =\""+rs.getInt("IDempresa")+"\">"+rs.getString("empr_raza_soci")+"</option>");
	
			con.close();
		}catch(Exception e){e.printStackTrace();}
 %>
</select>[/code]

Não vou poder te ajudar com o struts pq eu não sei nada de struts