Foros del Web » Programación para mayores de 30 ;) » Java »

Setear un radioButton con un servlet

Estas en el tema de Setear un radioButton con un servlet en el foro de Java en Foros del Web. Buenas tardes, estoy en un dilema. Tengo en un jsp dentro de un form un radioButton. Este form llama a un servlet que hace unas ...
  #1 (permalink)  
Antiguo 26/08/2012, 13:32
Avatar de miriam_marino  
Fecha de Ingreso: agosto-2012
Mensajes: 8
Antigüedad: 11 años, 8 meses
Puntos: 0
Setear un radioButton con un servlet

Buenas tardes, estoy en un dilema. Tengo en un jsp dentro de un form un radioButton. Este form llama a un servlet que hace unas validaciones y luego vuelve el control a la pagina jsp. El problema es que pierdo el dato del radioButton, los otros campos que son de tipo text los puedo ver porque hago request.setAttribute en el servlet pero esto no me funciona con el radioButton. Alguien sabe como hacerlo?
Gracias de antemano.
  #2 (permalink)  
Antiguo 27/08/2012, 11:03
 
Fecha de Ingreso: junio-2012
Ubicación: Paradas (Sevilla)
Mensajes: 13
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Setear un radioButton con un servlet

a los campos tipo checkbox y radiobutton debes llamarlos igual en el atributo name, y lo que te coge es el valor value.
por ejemplo, si tienes dos radiobuttons: Sí No , los atributos de estos campos son:
Sí --> name="opcion" value="si"
No --> name="opcion" value="no"

No sé si será que esto no lo has puesto, pero si es así, corrígelo.
  #3 (permalink)  
Antiguo 27/08/2012, 11:04
 
Fecha de Ingreso: junio-2012
Ubicación: Paradas (Sevilla)
Mensajes: 13
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Setear un radioButton con un servlet

Ah, en el servlet debes poner String opcion_elegida = request.getParameter("opcion");
  #4 (permalink)  
Antiguo 27/08/2012, 11:33
Avatar de miriam_marino  
Fecha de Ingreso: agosto-2012
Mensajes: 8
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Setear un radioButton con un servlet

Gracias parakas pero eso ya lo estoy haciendo. Lo que yo necesito es que despues de validar en el servlet el radioButton vuelva a la pagina original y le muestre lo que eligió. Eso no lo puedo hacer, deja seleccionada la opcion que puse por defecto y si en el form no pongo ninguna opcion por defecto, entonces no me muestra seleccionado nada. O sea en la comunicación pierdo lo que seleccionó en el radioButton. Tenés alguna otra idea?. Gracias de antemano.
  #5 (permalink)  
Antiguo 28/08/2012, 04:50
 
Fecha de Ingreso: junio-2012
Ubicación: Paradas (Sevilla)
Mensajes: 13
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Setear un radioButton con un servlet

OK. YA SÉ LO QUE NECESITAS. Mira te pongo un jsp con dos radio buttons y el servlet que toma los valores. Lo que tienes que hacer es poner la propiedad checked="checked" cuando el valor retornado por el servlet sea igual al del radio button (value de cada radio). Bueno lo entenderás mejor con los códigos, pero de esta forma ya mantiene el radio button seleccionado una vez validado por el servlet.

CÓDIGO DEL INDEX.JSP:

<%--
Document : index
Created on : 28-ago-2012, 12:19:52
Author : Jero
--%>

<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>JSP Page</title>
</head>
<body>
<%String opcion = null;%>
<%if(request.getAttribute("opcion")!=null)
{
opcion = request.getAttribute("opcion").toString();
}%>

<form action="validar" method="post">
<%if( request.getAttribute("opcion")!=null && opcion.compareTo("si")==0)
{%>
<input type="radio" name="opcion" value="si" checked="checked">Sí<br>
<input type="radio" name="opcion" value="no">No<br>
<%}else if( request.getAttribute("opcion")!=null && opcion.compareTo("no")==0)
{%>
<input type="radio" name="opcion" value="si">Sí<br>
<input type="radio" name="opcion" value="no" checked="checked">No<br>
<%}else{%>
<input type="radio" name="opcion" value="si">Sí<br>
<input type="radio" name="opcion" value="no">No<br>
<%}%>
<input type="submit" value="Enviar">
</form>

</body>
</html>



CÓDIGO DEL SERVLET:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package servlets;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
*
* @author Jero
*/
public class validar extends HttpServlet {

/**
* Processes requests for both HTTP
* <code>GET</code> and
* <code>POST</code> methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();

String opcion = request.getParameter("opcion");
request.setAttribute("opcion", opcion);
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.forward(request, response);

}

// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP
* <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

/**
* Handles the HTTP
* <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}




TEN EN CUENTA QUE HE CREADO EN SOURCE PACKAGE UN FOLDER LLAMADO SERVLETS, DONDE HE METIDO EL SERVLET VALIDAD (lo he hecho con netbeans).

Bueno espero haber respondido a tu pregunta. Un saludo.
  #6 (permalink)  
Antiguo 04/09/2012, 05:50
Avatar de miriam_marino  
Fecha de Ingreso: agosto-2012
Mensajes: 8
Antigüedad: 11 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Setear un radioButton con un servlet

Gracias Parakas.
Perdon por no haber respondido antes pero es que tuve que terminar otro tema antes de volver con el radioButton.
Lo tuyo está perfecto. De hecho una amiga por otro lado me mando más o menos lo mismo. La unica diferencia es que en lugar de hacer los ifs en el form. Ella hace:

DEfinimos estado como booleano y lo tomamos del request. Previamente seteado por el servlet.

String checked_abierto = "";
String checked_cerrado = "";

if (estado) {
checked_abierto = "checked=\"checked\"";
} else {
checked_cerrado = "checked=\"checked\"";
}

%>
<form name="xxxx" action="xxxxxr">
<input type="radio" name="estado" value="abierto"
<%=checked_abierto %> /><span> Abierto</span><br/>
<input type="radio" name="estado" value="cerrado"
<%=checked_cerrado %> /><span>Cerrado</span> <br/>

Ves que es lo mismo?. Te agradezco mucho y espero encontrarte en alguna otra de mis dudas existenciales.
Saludos.
Miriam.

Etiquetas: java., jsp, servlet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:04.