Valor do RadioButton no Servlet

Pessoal,
Estou com dúvida de como pegar o valor de um radiobutton ticado em um form, segue meu código.

JSP

[code]<%@page contentType=“text/html” pageEncoding=“UTF-8”%>

JSP Page

Qual destido você gostaria ?

<form name="form1" method="post" action="registraVoto">
 <tr>
<td bgcolor="#e8e8e8" align="right">Usuário brain:</td>
<td><input name="usuario" type="text" value="" id="usuario" size="30"  /></td>
  <p>
    <label>
      <input type="radio" name="Opcao" value="Recife" id="Opcao_0">
      Recife</label>
    <br>
    <label>
      <input type="radio" name="Opcao" value="Camboriu" id="Opcao_1">
      Camboriu</label>
    <br>
    <label>
      <input type="radio" name="Opcao" value="Rio de Janeiro" id="Opcao_2">
      Rio de Janeiro</label>
  </p>
  
  <input name="Votar" type="submit" value="Votar">
</form>
</body>
[/code]

Servlet

[code] protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(“text/html;charset=UTF-8”);
PrintWriter out = response.getWriter();
try {

    String usuario = request.getParameter("usuario");
    String voto = request.getParameter("radio");
        
        resultado r = new resultado();
        resultadoDaoMysql rDao = new resultadoDaoMysql();
        r.setOpcao(voto);
        r.setOperador(usuario);
        rDao.registrarVoto(r);          
        
    } finally {            
        out.close();
    }
}[/code]

Alguém poderia me indica onde está o erro?

O parâmetro não seria “Opcao” ao invés de “radio” no Servlet colega ? :slight_smile:

quando vc nao clica no radio ele chega na servlet como null entao vc trata ele e passa para false. se for diferente de null eh true.

[]'s

[quote=CaioNascimento]Pessoal,
Estou com dúvida de como pegar o valor de um radiobutton ticado em um form, segue meu código.

JSP

[code]<%@page contentType=“text/html” pageEncoding=“UTF-8”%>

JSP Page

Qual destido você gostaria ?

<form name="form1" method="post" action="registraVoto">
 <tr>
<td bgcolor="#e8e8e8" align="right">Usuário brain:</td>
<td><input name="usuario" type="text" value="" id="usuario" size="30"  /></td>
  <p>
    <label>
      <input type="radio" name="Opcao" value="Recife" id="Opcao_0">
      Recife</label>
    <br>
    <label>
      <input type="radio" name="Opcao" value="Camboriu" id="Opcao_1">
      Camboriu</label>
    <br>
    <label>
      <input type="radio" name="Opcao" value="Rio de Janeiro" id="Opcao_2">
      Rio de Janeiro</label>
  </p>
  
  <input name="Votar" type="submit" value="Votar">
</form>
</body>
[/code]

Servlet

[code] protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(“text/html;charset=UTF-8”);
PrintWriter out = response.getWriter();
try {

    String usuario = request.getParameter("usuario");
    String voto = request.getParameter("radio");
        
        resultado r = new resultado();
        resultadoDaoMysql rDao = new resultadoDaoMysql();
        r.setOpcao(voto);
        r.setOperador(usuario);
        rDao.registrarVoto(r);          
        
    } finally {            
        out.close();
    }
}[/code]

Alguém poderia me indica onde está o erro?[/quote]

Tenta mudar o String voto = request.getParameter("radio"); para String voto = request.getParameter("Opcao");

cada radio tem que ter ser proprio nome, se nao vc nao vai saber quem foi clicado. esses problemas sao facilmente resolvidos fazendo pequenos testes, tente imprimir os valores das variaves que estao no servlet. fica a dica!

É claro que pode e deve ter o mesmo nome, senão ele entende que se trata de um novo radio button e não de um grupo. Nomes distintos faz com que ele entenda que é um novo radio. Basta ver: http://www.w3schools.com/html/html_forms.asp

O que deve, OBVIAMENTE, ser alterado, é o conteúdo do atributo “value”. Lá no topo, você disse para ele fazer uma verificação com null e etc.
Cara, tenha cuidado com o que afirma aqui, ainda mais para iniciantes. É a segunda afirmação incorreta que faz no mesmo tópico.

[quote]
O que deve, OBVIAMENTE, ser alterado, é o conteúdo do atributo “value”. Lá no topo, você disse para ele fazer uma verificação com null e etc.
Cara, tenha cuidado com o que afirma aqui, ainda mais para iniciantes. É a segunda afirmação incorreta que faz no mesmo tópico.[/quote]

nel segure sua emoção e antes de falar bobeira faça um teste, se o usuario nao ticar nenhum radio ele chega null na servlet.

[quote=mauricioadl][quote]
O que deve, OBVIAMENTE, ser alterado, é o conteúdo do atributo “value”. Lá no topo, você disse para ele fazer uma verificação com null e etc.
Cara, tenha cuidado com o que afirma aqui, ainda mais para iniciantes. É a segunda afirmação incorreta que faz no mesmo tópico.[/quote]

nel segure sua emoção e antes de falar bobeira faça um teste, se o usuario nao ticar nenhum radio ele chega null na servlet.[/quote]

Minha emoção está 100% segura. O erro dele é porque ele busca o parametro no Servlet como “radio” e não como “Opcao”, que foi definido no atributo “name”.
Sendo assim, isso que você disse só funciona se ele corrigir, primeiramente, o erro dele. Em seguida, você afirmou outro ponto errado, basta você mesmo testar e/ou ler o link do W3C que eu lhe disse.

O que eu quis dizer é que um problema nos equivocarmos ao postarmos algo para iniciantes, simples assim.