Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/01/2009, 05:33
BORJACONIL
 
Fecha de Ingreso: marzo-2008
Ubicación: Cádiz, España
Mensajes: 89
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Problemas con switch y variables de sesion

Cita:
Iniciado por GreenEyed Ver Mensaje
Como te recomienda el mensaje de error, en vez de Strings, utiliza enums:

http://java.sun.com/docs/books/tutor...vaOO/enum.html

S!

PD: De todas formas, si con if te entra en dos condiciones es que las estas poniendo mal.
Este es el código pero con los if:
Código PHP:
if (sesion.getAttribute("busqueda").equals("Contiene"))
        {
            
System.out.println("Debe de ser Contiene: "+sesion.getAttribute("busqueda")); 
            
rs st.executeQuery("select * from mapas m,signaturasoriginales s,materias mat,lugargeosec l,autores a WHERE "
                    
+" m.mapaid=s.mapaid AND "
                    
+" m.materiaid=mat.materiaid AND"
                    
+" m.mapaid=l.mapaid AND"
                    
+" m.mapaid=a.mapaid AND" 
                    
+" m.signatura like '%"
                    
sesion.getAttribute("tematica")
                    + 
"%' OR s.signaturaoriginal like '%"
                    
sesion.getAttribute("tematica")
                    + 
"%' OR m.lugargeografico like '%"
                    
sesion.getAttribute("geografica")
                    + 
"%' OR l.lugar like '%"
                    
sesion.getAttribute("geografica")
                    + 
"%' OR mat.materia like '%"
                    
sesion.getAttribute("tematica")
                    + 
"%' OR a.autor='"
                    
sesion.getAttribute("autor")
                    + 
"'  OR m.fecha='"
                    
sesion.getAttribute("cronologica")
                    + 
"'");
        }
        if (
sesion.getAttribute("busqueda").equals("Exacta")) 
        {
            
System.out.println("Debe de ser Exacta: "+sesion.getAttribute("busqueda"));
            
rs st.executeQuery("select * from mapas m,signaturasoriginales s,materias mat,lugargeosec l,autores a WHERE "
                    
+" m.mapaid=s.mapaid AND "
                    
+" m.materiaid=mat.materiaid AND"
                    
+" m.mapaid=l.mapaid AND"
                    
+" m.mapaid=a.mapaid AND"
                    
+" m.signatura='"
                    
sesion.getAttribute("tematica")
                    + 
"' or  s.signaturaoriginal='"
                    
sesion.getAttribute("tematica")
                    + 
"' or m.lugargeografico='"
                    
sesion.getAttribute("geografica")
                    + 
"' or l.lugar='"
                    
sesion.getAttribute("geografica")
                    + 
"' or mat.materia='"
                    
sesion.getAttribute("tematica")
                    + 
"' or a.autor='"
                    
sesion.getAttribute("autor")
                    + 
"' or m.fecha='"
                    
sesion.getAttribute("cronologica")
                    + 
"'");
            
        }
        if (
sesion.getAttribute("busqueda").equals("EmpiezaPor"));
        {
            
System.out.println("Debe de ser Empieza Por: "+sesion.getAttribute("busqueda"));
            
rs st.executeQuery("select * from mapas m,signaturasoriginales s,materias mat,lugargeosec l,autores a WHERE "
                    
+" m.mapaid=s.mapaid AND "
                    
+" m.materiaid=mat.materiaid AND"
                    
+" m.mapaid=l.mapaid AND"
                    
+" m.mapaid=a.mapaid AND" 
                    
+" m.signatura like '%"
                    
sesion.getAttribute("tematica")
                    + 
"' or  s.signaturaoriginal like '%"
                    
sesion.getAttribute("tematica")
                    + 
"' or m.lugargeografico like '%"
                    
sesion.getAttribute("geografica")
                    + 
"' or l.lugar like '%"
                    
sesion.getAttribute("geografica")
                    + 
"' or mat.materia like '%"
                    
sesion.getAttribute("tematica")
                    + 
"' or a.autor='"
                    
sesion.getAttribute("autor")
                    + 
"' or m.fecha='"
                    
sesion.getAttribute("cronologica")
                    + 
"'");
        }
        
RowSetDynaClass resultSet = new RowSetDynaClass(rsfalse);
        
request.setAttribute("registros"resultSet);
    }     
    catch (
Exception e
    {
        
out.println("Error de conexion con la base de datos: " e);
    } 
Si el tipo de busqueda es contiene o exacta, se mete en su if pero tb en el de empiezapor. De ahi los system.out para poder comprobarlo desde el apache.

Por lo que me hace pensar que el problema venga de la página que llama a la búsqueda. Es un formulario con su combo donde se selecciona el tipo de busqueda. Cuando se sa a buscar, se va a otra jsp donde se crean las variables de sesion y de ahi a la página de resultados.

¿Porque puñetas entra en los 2 if????

Última edición por BORJACONIL; 21/01/2009 a las 05:45