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

probelam con checkbox

Estas en el tema de probelam con checkbox en el foro de Java en Foros del Web. Hola a todos. Tengo una aplicación basada en struts. Estoy intentando registrar un vehiculo en mi base de datos. El vehiculo tendrá un equipamiento que ...
  #1 (permalink)  
Antiguo 07/02/2007, 05:04
 
Fecha de Ingreso: octubre-2006
Mensajes: 50
Antigüedad: 17 años, 6 meses
Puntos: 0
probelam con checkbox

Hola a todos. Tengo una aplicación basada en struts. Estoy intentando registrar un vehiculo en mi base de datos. El vehiculo tendrá un equipamiento que selecciono mediante casillas de verificacion. El código de mi jsp es:

<%@ taglib uri="/bean" prefix="bean" %>
<%@ taglib uri="/html" prefix="html" %>
<%@ taglib uri="/logic" prefix="logic" %>
<%@ taglib uri="/template" prefix="template" %>

<br/>
<html:errors/>
<br/>

<table cellpadding="2">
<html:form action="/nuevoVehiculo.do" focus="nif">
<tr>
<td align="right">
<b>Marca:</b>
</td>
<td>
<html:text property="marca" size="10"/>
</td>
</tr>
<tr>
<td align="right">
<b>Modelo:</b>
</td>
<td>
<html:text property="modelo" size="30"/>
</td>
</tr>
<tr>
<td align="right">
<b>Versión:</b>
</td>
<td>
<html:text property="version" size="30"/>
</td>
</tr>
<tr>
<td align="right">
<b>Acabado:</b>
</td>
<td>
<html:text property="acabado" size="30"/>
</td>
</tr>
<tr>
<td>
<b>Equipamiento:</b>
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="ABS" value="Yes">
<b>ABS</b>
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="ESP" value="Yes">
<b>ESP</b>
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="TCS" value="Yes">
<b>Control de tracción</b>
</td>
</tr>




<tr>
<td>
<html:submit value="Registrar Vehiculo"/>
</td>
</tr>

</html:form>
</table>

Desde aqui voy una clase de acción donde recupero los datos del formulario que posteriormente serán introducidos en la base de datos. El problema está a la hora de recuperar los datos del equipamiento, hago lo siguiente:

String equipamiento="";

if(request.getParameter("ABS").equals("Yes"))
{
equipamiento = "ABS";
}

if(request.getParameter("ESP").equals("Yes"))
{
equipamiento = equipamiento + "," + "ESP";
}

if(request.getParameter("TCS").equals("Yes"))
{
equipamiento = equipamiento + "," + "TCS";
}

vehiculo.setEquipamiento(equipamiento);

A la hora de ejecutar, si selecciono los tres elementos de equipamiento no hay problema, pero si dejo alguno sin seleccionar me da un error java.langNullPointerException en la linea if(request...) de aquel que no haya seleccionado. No se a que puede deberse, porque teoricamente si no ha sido marcado se saltaría el if y pasaría a evaluar el siguiente. Un saludo.
  #2 (permalink)  
Antiguo 07/02/2007, 08:32
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Re: probelam con checkbox

Hombre, yo no tengo demasiada idea de JSP, pero según veo, miras si un parámetro tiene el valor "Yes", no?

Entonces, si el parámetro no está seleccionado, (creo) que no es enviado por el navegador, con lo que con request.getParameter(x) estás haciendo una referencia a algo que no existe.

Para solucionarlo, comprueba la existencia del parametro antes de comprobar su valor.

Espero haberte ayudado ;)

Saludos
  #3 (permalink)  
Antiguo 07/02/2007, 11:55
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: probelam con checkbox

Es lo que comenta santhy, y una opción que a veces se usa es invertir el equals:
Código:
if("Yes".equals(request.getParameter("ABS")))
De esta forma no llamas a un metodo sobre algo que puede ser null. O eso o comprobar primero como ya han dicho.

S!
  #4 (permalink)  
Antiguo 07/02/2007, 14:25
 
Fecha de Ingreso: octubre-2006
Mensajes: 50
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: probelam con checkbox

gracias por las respuestas, probaré a cambiarlo a ver que tal
  #5 (permalink)  
Antiguo 07/02/2007, 14:31
 
Fecha de Ingreso: octubre-2006
Mensajes: 50
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: probelam con checkbox

ok, funciona con tu idea GreenEyed, gracias a los dos por vuestra ayuda
  #6 (permalink)  
Antiguo 08/02/2007, 10:16
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Re: probelam con checkbox

Nada.

Eso me pasa a mi a veces en PHP, vi tu mensaje de casualidad, que JSP no tengo ni idea...
Eso es un if() (una condición), es decir, algo válido para (casi) cualquier tipo de programación ;)


Saludos y a seguir desarrollando ;)
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 02:06.