Java - Servlet y JSP

   
Vista:

Servlet y JSP

Publicado por Maria (25 intervenciones) el 22/03/2017 00:33:19
Tengo la siguiente página JSP:
1
2
3
4
5
6
7
8
9
10
11
<!DOCTYPE html>
<html>
  <body>
    <form action="validar" method="post">
            <label>Nombre</label><input name="nom" type="text" />
            <label>Edad</label><input name="edad" type="number" />
        <input type="submit" value="Enviar" />
        <div>${requestScope.validaciones}</div>
    </form>
  </body>
</html>

Al postear este formulario los datos se envia al servlet validar para su validación: no puede haber campos vacios y la edad mayor de 0 y menor de 100. Si alguna validacion no se cumple se generar un mensaje de error a traves de la variables de scope "validaciones". Despues de estas validaciones, el servlet mediante redirección interna volverá a la página JSP anterior.
Después de la redirección, si no hubo errores los campos del formulario deben aparecer vacíos; si hubo errores los campos del formulario deben conservar los valores previos y deben mostrarse los mensajes de error en el elemento <div />.

---> Mi duda está en ¿como se guardan los mensajes de error en la variable de scope? Y si hay errores ¿como mantengo los valores previos en los campos?

A ver si alguien me puede ayudar, Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Servlet y JSP

Publicado por preguntas (65 intervenciones) el 23/03/2017 19:52:52
Pues... Todo a través de atributos(asi de sencillo).

Index.jsp
1
2
3
4
5
6
7
<form action="validar" method="post">
            <label>Nombre</label><input value="${nom}" name="nom" type="text" />
            <label>Edad</label><input value="${edad}" name="edad" type="number" />
            <input type="submit" value="Enviar" />
            <br />
            <div>${requestScope.validaciones}</div>
        </form>

validar.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
String nombre = request.getParameter("nom");
        String edad = request.getParameter("edad");
        int edadInt = (edad.equals("") || edad==null?0:Integer.valueOf(edad));
 
        String validaciones = "";
 
        if (nombre.replaceAll(" ", "").equals("")) {
            validaciones += "El campo nombre esta vacio";
        }
        if (edadInt <= 0 || edadInt > 100) {
            validaciones += "<br />el campo edad debe estar dentro de los rangos 1 y 100";
        }
 
        if (validaciones.equals("")) {
            nombre = "";
            edad = "";
            validaciones += "TODO OK!";
        }
        request.setAttribute("validaciones", validaciones);
        request.setAttribute("nom", nombre);
        request.setAttribute("edad", edad);
        request.getRequestDispatcher("index.jsp").forward(request, response);

Un alcance...
Nombre de clases siempre la primera letra debe ir en Mayúscula (Para rápidamente entender que se trata de una clase).

Hablo por el Servlet validar. Se debería llamar Validar.
Hasta luego ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Servlet y JSP

Publicado por Maria (25 intervenciones) el 23/03/2017 23:22:13
Muchisimas gracias!!!

te debo una ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar