Anda di halaman 1dari 26

13

Adición de Manejo de Errores y Validación

Copyright © 2004, Oracle. Todos los derechos reservados.


Objetivos

Al finalizar esta lección, debería estar capacitado para:


• Validar la entrada de pantalla
• Utilizar la validación declarativa
• Utilizar la validación en el cliente
• Utilizar las indicaciones de control para modificar la
vista

Copyright © 2004, Oracle. Todos los derechos reservados.


Visión General de Validación
Método validate() Validadores de
de bean de pantalla, validador de Struts método,indicaciones de control

ADF
Bean de pantalla Acción Business
JSP de Struts de Struts Components

JavaScript Nuevos métodos de validación

Copyright © 2004, Oracle. Todos los derechos reservados.


Necesidad de Validación

Por lo general, en las aplicaciones Web, el usuario no


recibe formación sobre cómo completar los campos
correctamente. Así, una aplicación debe proporcionar
feedback al usuario para estos tipos de acciones:
• Introducción de valores necesarios
• Especificación de valores dentro de un rango
especificado
• Comparación de valores
– Por ejemplo, Password1 se debe corresponder con
Password2.

Copyright © 2004, Oracle. Todos los derechos reservados.


Validación del Cliente

Para realizar la validación mediante Struts debe:


1. Crear una clase de bean de pantalla
2. sobrescribir el método validate() de bean de
pantalla, transfiriendo un error a la acción
3. Crear el mensaje de error en
ApplicationResources.properties
4. Agregar el atributo de entrada para la pantalla a la
acción para indicar dónde debe aparecer el mensaje
de error

Copyright © 2004, Oracle. Todos los derechos reservados.


Método de Validación de Bean de Pantalla

El bean de pantalla contiene un método validate()


para validar campos de pantalla. sobrescriba este
método para realizar la validación personalizada:
public ActionErrors validate(ActionMapping
mapping, HttpServletRequest request)
{
ActionErrors errors = new ActionErrors();
if ((username == null) ||
(username.trim().equals("")))
{
errors.add("username", new
ActionError("error.username.required"));
}
return errors;
}

Copyright © 2004, Oracle. Todos los derechos reservados.


Creación del Mensaje de Error

• Para mostrar el mensaje de error, especifique el


mensaje en
ApplicationResources.properties:
error.username.required=The Username Value must be
Supplied

• Defina dónde se va a mostrar el mensaje de error


mediante el atributo input:
<action name="logonbean" path="/logon"
input="showLogon.jsp" type="view.LogonAction">

Copyright © 2004, Oracle. Todos los derechos reservados.


Impresión de Errores en JSP

Asegúrese de que la JSP contiene una etiqueta


<html:errors>:
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ page contentType="text/html;charset=windows-1252"%>
<html>

<body>
<html:errors />

Observe que puede especificar el atributo de propiedad de


la etiqueta <html:errors> para imprimir sólo el error
correspondiente:
<html:text property="username"></html:text>
<html:errors property="username" />

Copyright © 2004, Oracle. Todos los derechos reservados.


Validación de Acciones

Un segundo tipo de validación consiste en sobrescribir


el método de ejecución en la clase de acción. Este tipo
de validación es útil cuando:
• Se han creado previamente clases que
comprueben la validez de un valor determinado
• El usuario no desea que los valores de pantalla se
reestablezcan tras la validación
• La lógica de validación es compleja

Copyright © 2004, Oracle. Todos los derechos reservados.


Creación de una Clase de Validación

El primer paso para validar la entrada de usuario es crear


un método para la validación. Esto se puede hacer en un
archivo de clase sencillo, como se muestra:
package view;
public class LoginValidation
{
boolean checkUsernamePassword(String un, String pw)
{
if ( un.equals("scott") && pw.equals("tiger") )
return true;
else
return false;
}
}

Copyright © 2004, Oracle. Todos los derechos reservados.


El Método execute()

Para validar la entrada de usuario en la clase de


acción, sobrescriba el método execute(), llamando al
método de validación:
public ActionForward execute…
{
LogonActionForm logonForm = (LogonActionForm) form;
String un = logonForm.getUsername();
String pw = logonForm.getPassword();
LoginValidation loginvalidation = new
LoginValidation();

if ( loginvalidation.checkUsernamePassword(un,pw))
{
return mapping.findForward("success");
} else return mapping.findForward("failure"); }

Copyright © 2004, Oracle. Todos los derechos reservados.


Resultados de Validación

1. El usuario introduce una 2. El usuario no introduce


conexión incorrecta datos (validación de bean
(validación de acción). de pantalla).

3. El usuario introduce
unaconexión correcta.

Copyright © 2004, Oracle. Todos los derechos reservados.


Validador de Struts

Valide de forma declarativa campos de pantalla mediante el


validador de Struts. El plugin del validador:
• Está basado en XML
– validator-rules.xml (reglas de validación)
– validations.xml (usos)
• Define las reglas de cada campo en un bean de pantalla
• Puede proporcionar la validación de cliente mediante
JavaScript
• Es ampliable

Copyright © 2004, Oracle. Todos los derechos reservados.


Configuración del Validador de Struts

1. Especifique la clase de validador en la etiqueta


<plug-in> de struts-config.xml.
2. Agregue validation-rules.xml al proyecto.
3. Modifique la clase de bean de pantalla a la subclase
ValidatorForm o DynaValidatorForm.
4. Cree un archivo de uso para especificar las reglas de
campo de pantalla.
5. Agregue mensajes de error a
ApplicationResources.properties.

Copyright © 2004, Oracle. Todos los derechos reservados.


Uso del Validador de Struts

Agregue ValidatorPlugIn a la etiqueta <plug-in> y


especifique la ruta para validator-rules.xml y
validation.xml:

Copyright © 2004, Oracle. Todos los derechos reservados.


Uso del Validador de Struts

• Especifique el bean de pantalla para utilizar el


validador de Struts mediante la subclasificación de
ValidatorForm o DynaValidatorForm:
import org.apache.struts.validator.ValidatorForm;
public class LogonActionForm extends ValidatorForm {

• Cree validation.xml para validar campos de


pantalla y asegúrese de que todos los campos de
pantalla que se van a validar contienen una entrada en
ApplicationResources.properties:
Logon.username=username
Logon.password=password

Copyright © 2004, Oracle. Todos los derechos reservados.


validation.xml: Ejemplo

<!DOCTYPE form-validation PUBLIC


"-//Apache Software Foundation//DTD Commons
Validator Rules Configuration 1.0//EN"

"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"
>
<form-validation>
<formset>
<form name="logonbean">
<field property="password" depends="required" >
<arg0 key="logon.password" />
</field>
</form>
</formset>
</form-valiidation>

Copyright © 2004, Oracle. Todos los derechos reservados.


Salida del Validador de Struts

Los mensajes del validador se pueden mostrar en la


página o en una ventana de JavaScript:

Copyright © 2004, Oracle. Todos los derechos reservados.


Manejo de Excepciones

Para implementar el manejo de excepciones:


1. Cree una clase para el manejo de excepciones, que
subclasifique
org.apache.struts.action.ExceptionHandler
2. Sustituya el método execute()para procesar la
excepción
3. Devuelva un objeto ActionForward
4. Configure el manejador de excepciones en el archivo
struts-config.xml
5. Cree un mensaje de excepción en
ApplicationResources.properties

Copyright © 2004, Oracle. Todos los derechos reservados.


JavaScript

JavaScript se soporta en
JDeveloper como una
manera sencilla de
incorporar la validación.

Copyright © 2004, Oracle. Todos los derechos reservados.


Mejora de la Vista

Utilice las indicaciones


de control para
modificar el modo en
que un atributo se
muestra en un cliente.

Copyright © 2004, Oracle. Todos los derechos reservados.


Resumen

En esta lección ha aprendido a:


• Validar la entrada de pantalla mediante:
– El método validate()
– La clase de acción
– El validador de Struts
• Desarrollar la validación de JavaScript
• Personalizar la vista mediante indicaciones de control

Copyright © 2004, Oracle. Todos los derechos reservados.


Práctica 13-1: Visión General

Esta práctica cubre los siguientes temas:


• Validación de campos de pantalla mediante el método
validate()
• Creación de métodos de validación
• Llamada a métodos de validación desde acciones
• Uso del Validador de Struts
• Manejo de excepciones

Copyright © 2004, Oracle. Todos los derechos reservados.


Práctica 13-1

Copyright © 2004, Oracle. Todos los derechos reservados.


Práctica 13-1

Copyright © 2004, Oracle. Todos los derechos reservados.


Práctica 13-1

Copyright © 2004, Oracle. Todos los derechos reservados.

Anda mungkin juga menyukai