You are on page 1of 21

Struts 2

Validaciones
Curso: Desarrollo de Aplicaciones Web II Equipo de Profesores del Curso

Objetivos
Aprender a validar los formularios de manera manual en Struts 2. Aprender a utilizar los validadores que vienen incorporados dentro de Struts 2 mediante XML. Aprender a crear Custom Validators

Validacin Manual
La clase ActionSupport implementa 2 interfaces: Validateable ValidationAware El mtodo validate() se ejecutar durante el flujo por defecto en el framework. Es decir, se ejecuta ANTES del mtodo execute(). El mtodo devuelve un resultName input si ocurre alguna falla en la validacin. Si el resultado con name=input no est presente en el archivo de configuracin, se genera un error.

LAB # 0

No olvidar Getter/setter

Este mtodo se ejecuta primero

Validacin por XML


Se requieren 3 pasos: 1) Determinar sobre que Action se realizarn las validaciones. Por ejemplo el Action Class se llama Abc.java 2) Escribir el archivo de configuracin para la validacin. El archivo sigue el formato: ActionClassName-validation.xml En el ejemplo sera: Abc-validation.xml

3) Definir a donde se enva la respuesta en caso la validacin falle. Para ello se registra el result input en el archivo de configuracin de struts. <result name="input"> . </result>

Esquema tpico del archivo XML

Root Element Definicin DTD Field validators

Plain (non-field validators ) validators

LAB # 1 : required
Verifica que el valor del campo no sea NULL. Nota: Un string vaco no es NULL. Observar que el campo esta comentado

Lab #2 : requiredstring
Verifica que el valor del campo no sea NULL y que tampoco sea vaco. Parmetro trim ( valor por defecto true )

Lab #3: stringlength


Verifica la longitud de un campo No vaco. Parmetros trim , minLenght, maxLength

Lab #4: int


Verifica que el valor del campo pueda convertirse a int Parmetros min, max. Si estn presentes, verifica que el valor est dentro del rango

Lab #5: date


Verifica que el valor del campo est dentro del rango de fechas. El formato a emplearse depende del LOCALE Parmetros min, max. Si estn presentes, verifica que el valor est dentro del rango

Lab #6: email


Verifica que el valor del campo sea un formato de correo electrnico. Usa expresiones regulares (regexpr) con el formato siguiente:

Lab #7: url


Verifica que el valor del campo sea un formato de URL Trata de crear un objeto java.net.URL usando el valor del campo. Si no ocurre una excepcin durante la creacin del objeto, la validacin es OK.

Ejemplos: http / https / ftp /file

Custom Validators
Un validator debe implementar la interface Validator que es parte del paquete com.opensymphony.xwork2.validator El interceptor Validatior es el responsable de cargar y ejecutar los validadores. El interceptor invoca al metodo validate pasandole el objeto a ser validado. Dicho mtodo es el que debe sobre escribirse cuando se disea un custom validator. Antes que implementar la Interface Validator, es ms conveniente extender las clases: ValidatorSupport si se disea un plain validador FieldValidatorSupport si se disea un field validator

Lab #8: Custom Validators

En una sola lnea

Registro de Custom Validators


Los validators por defecto estn registrados en el archivo xwork.jar en la ruta siguiente:

Los customs validators debe ser registrados:

Expresiones Regulares
Validador regex : verifica que el valor de un campo coincida con un patrn de expresin regular. Los validadores expression y fieldexpression se usan para validar un campo contra una expresin OGNL. Un error en el validador expression genera un action error. Un error en el validador fieldexpression genera un field error.

Lab #9: regex Validators

Referencias
http://struts.apache.org/2.2.1.1/docs/form-validation.html http://struts.apache.org/2.2.1.1/docs/validation.html

Investigar el conversion validador Practicar los custom validators Revisar los patrones de java.lang.regex.Pattern

You might also like