Valor do RadioButton no Servlet

7 respostas
C

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

JSP
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
	<div><h1>Qual destido você gostaria ?</h1></div>
   
    <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>
</tr>
    
      <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>
</html>

Servlet

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();
        }
    }

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

7 Respostas

nel

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

mauricioadl

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

S
CaioNascimento:
Pessoal, Estou com dúvida de como pegar o valor de um radiobutton ticado em um form, segue meu código. JSP
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
	<div><h1>Qual destido você gostaria ?</h1></div>
   
    <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>
</tr>
    
      <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>
</html>

Servlet

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();
        }
    }

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

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

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!

nel

É 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.

mauricioadl


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.

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.

nel

mauricioadl:

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.

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.

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.

Criado 28 de março de 2012
Ultima resposta 28 de mar. de 2012
Respostas 7
Participantes 4