problemas con if else y radiobuttons
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ó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);
%>
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ó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);
%>
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
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
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 ;-)
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 ;-)
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.
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.
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
Xavi