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

ayuda: tengo que validar datos en un formulario jsp

Estas en el tema de ayuda: tengo que validar datos en un formulario jsp en el foro de Java en Foros del Web. hola estoy aprendiendo jsp (abriendo base de datos, consultando etc.) todavia no veo beans ni servlet, la funcion veridica() quiero que realize dos pasos: 1.- ...
  #1 (permalink)  
Antiguo 17/11/2004, 12:53
 
Fecha de Ingreso: noviembre-2004
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
ayuda: tengo que validar datos en un formulario jsp

hola estoy aprendiendo jsp (abriendo base de datos, consultando etc.) todavia no veo beans ni servlet, la funcion veridica() quiero que realize dos pasos: 1.- que los campos no esten vacios y que me muestre un mensaje (mensaje que diga "debe rellenar campo" 2.- consultar si el usuario ya existe tambien mostrar un mensaje (mensaje que diga usuario ya existe, ingrese otro).
¿alguien me podria decir la estructura de esta funcion y la forma de declararla? de antemano muchas gracias.

<html>
<head>
<title> Formulario</title>
</head>
<body>
<FORM NAME = "reg" ACTION = "Inicio.jsp" METHOD = "POST" ENCTYPE = "text/plain" onSubmit = "return verifica(this);">
<CENTER>
<table border=0>
<tbody>
Introduzca sus datos:
<table border=0>
<tbody>
<tr><td>Usuario:</td><td><INPUT TYPE = "TEXT" NAME = "usu"></td></tr>
<tr><td>Clave:</td><td><INPUT TYPE = "TEXT" NAME = "cla"></td></tr>
<tr><td>Nombre:</td><td><INPUT TYPE = "TEXT" NAME = "nom"></td></tr>
<tr><td>Apellido:</td><td><INPUT TYPE = "TEXT" NAME = "ape"></td></tr>
</tbody>
</table>
<INPUT TYPE = "sUBMIT" VALUE = "Enviar">
</CENTER>
</form>
</body>
</html>
  #2 (permalink)  
Antiguo 17/11/2004, 14:35
Avatar de aetrejo  
Fecha de Ingreso: septiembre-2004
Ubicación: Guatemala
Mensajes: 131
Antigüedad: 19 años, 7 meses
Puntos: 0
Sería mejor que pusieras esta pregunta en JScript.
__________________

Si algo puede fallar... fallará.
  #3 (permalink)  
Antiguo 17/11/2004, 15:17
 
Fecha de Ingreso: noviembre-2004
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
no lo puedo hacer directamente desde jsp?
  #4 (permalink)  
Antiguo 17/11/2004, 16:35
Avatar de Miguel Delgado  
Fecha de Ingreso: marzo-2004
Ubicación: Barranquilla
Mensajes: 130
Antigüedad: 20 años, 2 meses
Puntos: 0
Pues la idea de JavaScript, es para el manejo de esos campo HTML. Esto debido a que se manejaria del lado de cliente, imaginate darle esas funciones tan basicas al server! se cargaria tu aplicacion.
__________________
Fox Mulder

El destino es el que baraja las cartas, pero nosotros somos los que jugamos. :pensando: :pensando:
  #5 (permalink)  
Antiguo 17/11/2004, 20:48
 
Fecha de Ingreso: noviembre-2004
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
okey tendre que aprender javascript entonces gracias amigo bye
  #6 (permalink)  
Antiguo 18/11/2004, 05:31
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Sin embargo, por mucho que JAvaScript nos ayude en este sentido para validar al lado del cliente, jamas, jamas un buen Webmaster se fia de esto, pues uno jamas sabe si el navegador del usuario soportara o tendra abilitado la consola JavaScript, si no es asi, entonces todo falla y las validaciones no sirven de nada pues no se ejecutan.

Siempre siempre debes tambien tener los campos validados en el lado del servidor, y esto lo puedes hacer ya sea mediante un Servlet o una JSP, y amigo, esta es la validacion mas importante, pues sea cual sea el navegador del cliente, o tenga o no soporte para JavaScript sabes que las validaciones siempre se haran, pues esto lo hace el servidor no el cliente.

LA forema de hacer lo que tu quieres, si quioeres implantarlo dentro de un metodo en una JSP, es declarando el metodo de la forma como nos dice JSP que deben declararce los metodos para que luego se combiertan correctamente cuando la JSP es transformada en Servlet por el contenedor de Servlet como Tomcat o cualquier otro.
Esto es usando

<%!

con eso estamos diciendo que lo que sigue, va fuera de cualquier metodo y que es parte del cuerpo de la clase, por tanto, para declarar un metodo que valide los campos, debemos pasrale como parametro el HttpServletRequest para que este sea accesible desde el. por ejemplo, deberias tener algo como esto en la parate que estimes combeniente en tu pagina, da igual, pero lo abitual es hacerlo al final, despues de </html>

Código PHP:
<%! 
    private 
boolean todoValido(HttpServletRequest request) {
        
//validad por ejemplo que un campo nombre no venga vacio
        
if(request.getParameter("nombre").trim().equals("") || request.getParameter("nombre") == null) {
            return 
false;
        }
        
//debes hacerlo para cada parametro que desees validar

        //luego aqui si quieres validar en una base de datos haces todo
        //el procedimiento de conexion etc etc, y al igual que arriba vas preguntando
        //y retornando false si no se cumple

        //una vez hechas todas las validaciones, si llegas a este punto es por que
        //todo se cumplio, por tanto retornad true
        
return true;
    }
%> 
Luego ese metodo lo puedes llamar donde quieras en tu pagina, arriba, abajo da igual, pues como es un metodo seria como tu dices algo como una funcion, solo debes llamarlo asi desde cuaqluier lugar

Código PHP:
if(!todoValido(request)) {
    
out.println("Algo andubo mal");

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #7 (permalink)  
Antiguo 18/11/2004, 11:01
 
Fecha de Ingreso: noviembre-2004
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
una consulta ¿cual es le mejor mecanismo para llamar a este metodo, se puede hacer por el "Submit"? o es mejor cuando pierda el foco un texto?

por que me imagino que no da lo mismo colocar esa linea en cualquier parte de mi programa? deberia acontecer una accion para yo llamarla cierto?
  #8 (permalink)  
Antiguo 18/11/2004, 11:28
 
Fecha de Ingreso: noviembre-2004
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
otra consulta con respecto al codigo que me pusiste:

me mandan errores al tratar de llamar a la pagina que le puse el codigo,
<%!
private boolean todoValido(HttpServletRequest request)
{
if(request.getParameter("usu").trim().equals("") || request.getParameter("usu") == null)
{
return false;
}
return true;
} --le aguege una por la apertura del metodo cierto?
%>


la otra en import hay que llamar al java.servlet.*?
al ejecutar la pagina con estos cambios igual me sale un error:


org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:373)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:296)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:246)
javax.servlet.http.HttpServlet.service(HttpServlet .java:802)


causa raíz

java.lang.NullPointerException
org.apache.jsp.reg_jsp.todoValido(org.apache.jsp.r eg_jsp:18)
org.apache.jsp.reg_jsp._jspService(org.apache.jsp. reg_jsp:88)
org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet .java:802)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:325)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:296)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:246)
javax.servlet.http.HttpServlet.service(HttpServlet .java:802)
  #9 (permalink)  
Antiguo 18/11/2004, 12:36
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
No es java.servlet

es javax.servlet

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #10 (permalink)  
Antiguo 18/11/2004, 13:01
 
Fecha de Ingreso: noviembre-2004
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
como saber si tengo instaladas esas librerias,tengo el j2se devolepment kit 5.0

el cual me instalo el jdk1.5.0 y el jre1.5.0

te lo pregunto por que igual me sale error.



ayuda.
  #11 (permalink)  
Antiguo 18/11/2004, 22:32
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Precisamente esas librerias no son de la version estandar, sino que de la empresarial, es decir J2EE
Pero si tienes instalado Tomcat entonces este trae la API de Servlet, solo debes agregarlas a tu CLASSPATH y listo

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
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 09:37.