Dúvida com Checkbox

4 respostas
D
Pessoal estou com um problema em minha aplicação preciso pegar os valores que foram setados de um checkbox em uma página e escrevê-los em outra. Acontece que tenho o seguinte código na página onde preciso setar através do checkbox:
SQL2  = "SELECT * from contato where codgrupo = '"+id+"'";
                Statement stmt2 = conn2.createStatement();
                ResultSet rs2 = stmt2.executeQuery(SQL2);

                while (rs2.next()){
                    String nome = rs2.getString(4);
                    %>
                    <form action="cadMovimento.jsp" method="POST">
                        &lt;td align=left&gt;<ul><li>&lt;input type="checkbox" name="participantes" value="&lt;%=nome%&gt;"&gt;&lt;%=nome%&gt;</ul>&lt;/td&gt;<p>                                            
                    &lt;%
                }
            }
        }%&gt;
        &lt;input type="submit" value="Enviar"&gt;
        &lt;/form&gt;<%
Acontece que posso selecionar mais de um valor. Em minha aplicação quando seleciono somente um valor, sem problemas, funciona, mas quando preciso selecionar mais de um checkbox, na tela onde recupero os valores setados, me é retornado somente o primeiro valor. Na página onde recupero os valores setados tenho o seguinte código:
String participante = request.getParameter("participantes");
Tipo quando tenho os valores Teste, Teste1 e Teste2 para setar no checkbox e seto os 3, na outra tela só consigo recuperar o valor Teste. Agradeço se alguém puder me ajudar.

4 Respostas

leonardom

Para recuperar mais de um valor use o método: getParameterValues(java.lang.String name)

String participante[] = request.getParameterValues("participantes");

Vide API:
http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/ServletRequest.html#getParameterValues(java.lang.String)

D

Beleza, mas como faço para escrever os valores corretamente na tela. Preciso fazer alguma conversão? É que da maneira como me indicastes

String participante[] = request.getParameterValues("participantes");
Quando mando escrever na tela os valores me é retornada a seguinte string:


[Ljava.lang.String;@1d913b

Agradeço se puderes me ajudar.

furutani

Vc está fazendo isso? <%=participante%>
participante[] é um array, e como tal deve ser percorrido da seguinte forma: for(int idx = 0; idx < participante.length; idx++){ out.println(participante[idx]); }

D

Beleza furutani, funcionou. Obrigado! :thumbup:

Criado 13 de julho de 2005
Ultima resposta 14 de jul. de 2005
Respostas 4
Participantes 3