problemas con if else y radiobuttons

Joan
19 de Agosto del 2002
Hola, en una jsp tengo puesto el trozo de código que abajo se describe.
Como podéis ver tengo dos radiobuttons que envían un 1 o un 2 en función de cual de ellos esté activo en el momento del submit. Más abajo incorporo código java con un clásico if else if... para ejecutar varias cosas en función del valor del radiobutton. Lo que me pasa es que intento cazar el valor enviado del radiobutton y meterlo en rbuton, pero no sé exactamente que mete en rbuton ya que nunca entra en ninguna de las condiciones que evaluan si rbuton == 1, o 2 o null. Lo curioso es que si saco por pantalla el rbuton me sale 1 o 2 o null tal y como se espera. ¿Hago algo mal en el if else?
Alguien tiene idea de qué me pasa?
Gracias.
Joan



<input type="radio" name="radiobutton" value="1">
Ver Secciones asignadas al empleado</font> <font color="#000000" size="1">
<input type="radio" name="radiobutton" value="2">
Ver Asignados a esta secci&oacute;n
<input type="submit" name="Submit" value="Recargar">
</font></p>
</form>
<font color="#000000">

<%
String rbuton = request.getParameter("radiobutton");

if(rbuton == null){
SQLstring = "select * asignacion;";
out.println(rbuton);
}
else if(rbuton == "1"){
SQLstring = "select * from notas;";
out.println(rbuton);
}
else if(rbuton == "2"){
SQLstring = "select * from productos;";
out.println(rbuton);
}

gbd.consulta(SQLstring);
%>

xavi
19 de Agosto del 2002
En el primer if la comprobación es correcta, miramos si el objeto rbuton es null.

El problema viene con los otros dos String no es un tipo primitivo y por tanto no se puede usar el operador '==' para comprobar la igualdad, sino el método equals, i.e.:

if(rbuton.equals("2")) {...}

Xavi

Joan
19 de Agosto del 2002
Ostia claro!
Muchas gracias, ¿Se nota que soy novato?
Joan

xavi
19 de Agosto del 2002
De res.

Un consejo, si me lo permites, uno de los problemas de JSP es usarlo como si fuera ASP o PHP, es decir, empotrando código java en la misma página. Esto hay que evitarlo a toda costa y usar en su lugar librerias de tags.

Yo tengo un un lema ni un pc sin linux, ni un jsp con una linea de código java ;-)

Joan
19 de Agosto del 2002
Moltes gràcies pel consell. El que em passa és que començo amb això del java i vull depurar la meva tècnica mentre vaig fent aplicacions reals. Em miraré això dels tags.
Aprofito per plantejar un altre dubte de principiant sobre els if else:
Al mateix jsp d'abans ara tinc les següents instruccions:


if(rbuton.equals("hola")){
SQLstring = "select * asignacion;";
}
else if(rbuton.equals("3")){
SQLstring = "SELECT...;";
}
else if(rbuton.equals("1")){
SQLstring = "select...";
}
else if(rbuton.equals("2")){
SQLstring = "select...";
}

gbd.consulta(SQLstring);

doncs resulta que mai m'entra a la primera condició de l'if. A qualsevol dels else if sí que entra, però mai a l'if. Independentment de les condicions que posi a l'i o als else if. Deu ser una tonteria però no sé pas perquè passa. El jsp em desespera.
Gràcies.
Joan.


xavi
19 de Agosto del 2002
En principi ho veig bé el problema ha d'estar en algún "efecte col·lateral" del reste del codi. Enviem la página completa i veurem

Xavi

dariomf
19 de Agosto del 2002
La solucion que te han dado es la correcta. Yo tambien tuve varios problemas con el "==" y los Strings que recibia del cliente web. Los solucione con el metodo equals()