Está en: Inicio >> ISValidator >> Ejemplos >> Struts BásicoSábado 17 de Mayo de 2025
SourceForge Logo
ISValidator
Presentacion
Arquitectura
Download
Ejemplos
To-Do
Cambios
Más información
ISDirValidator
Presentacion
En SF.net
Resumen
Download
Noticias
In English
ISValidator

Página... Struts Básico

Ejemplos de ISValidator

Esta página recoge uno de los ejemplos de uso de las rutinas ISValidator. Puede así mismo ver los ejemplos que se incluyen en el paquete para descargar.

Situación

Este es un ejemplo del empleo de ISValidator junto con el Framework Struts de Apache. Ambos paquetes son complementarios ya que a la gestión MVC que realiza Struts se le puede añadir la gestión de validaciones que realiza ISValidator.

Este uso de las validaciones de ISValidator en Struts se puede plantear en varios niveles. El ejemplo que se presenta aqui es el más básico y que menos prestaciones proporciona.

Código del ejemplo

Este ejemplo es una adaptacion del ejemplo de Struts 1.0 y está hecho para la versión 0.0.10 de las rutinas ISValidator

En este ejemplo se modifica el LoginForm del ejemplo de Struts 1.0 para utilizar ISValidator

//added this imports
import com.inigoserrano.isvalidator.constraintsV01.*;
import com.inigoserrano.isvalidator.constraintsContainersV01.*;
import com.inigoserrano.isvalidator.constraintsExceptionsV01.*;


/**
 * Form bean for the user profile page.  This form has the following fields,
 * with default values in square brackets:
 * <ul>
 * <li><b>password</b> - Entered password value
 * <li><b>username</b> - Entered username value
 * </ul>
 *
 * @author Craig R. McClanahan
 * @version $Revision: 1.2 $ $Date: 2001/12/12 12:15:03 $
 */

public final class LoginForm1 extends ActionForm {

      private SimpleConstraintContainer password;
      private SimpleConstraintContainer username;

public String getPassword() {
	return (this.password.getValueToCheck());
}


public void setPassword(String password) {
try{
        this.password=new SimpleConstraintContainer(password);
        this.password.addConstraint(new NotBlankConstraint());
} catch (InternalConstraintException e) {
        //do nothing
}
}

public String getUsername() {
	return (this.username.getValueToCheck());
}

public void setUsername(String username) {
try{
        this.username=new SimpleConstraintContainer(username);
        this.username.addConstraint(new NotBlankConstraint());
} catch (InternalConstraintException e) {
        //do nothing
}
}


public void reset(ActionMapping mapping, HttpServletRequest request) {
        this.password = null;
        this.username = null;
}


public ActionErrors validate(ActionMapping mapping,
                                 HttpServletRequest request) {

        ActionErrors errors = new ActionErrors();
try{
        if (!username.checkConstraint())
            errors.add("username", new ActionError("error.username.required"));
        if (!password.checkConstraint())
            errors.add("password", new ActionError("error.password.required"));
        return errors;
}catch(InternalConstraintException e){
return errors;
}
catch(ConstraintException e){
return errors;
}
}
}
                        

Descripción del Código

Los cambios sobre el código no son muy grandes, se sustituyen los String que representan los campos por un contenedor de restricciones, en este caso el SimpleConstraintContainer, ya que no está especializado para ningún dominio.

      private SimpleConstraintContainer password;
      private SimpleConstraintContainer username;
                        

Lo siguiente que cambia son los métodos para obtener y poner los campos, ya que ahora deben utilizar el SimpleConstraintContainer. Tambien el el método de poner los valores de los campos se añaden las restricciones. Esto último tambien se podría haber realizado en el método validate.

public void setPassword(String password) {
try{
        this.password=new SimpleConstraintContainer(password);
        this.password.addConstraint(new NotBlankConstraint());
} catch (InternalConstraintException e) {
        //do nothing
}
}
                        

A la hora de realizar la validación lo único que se utiliza es la comprobación del cumplimiento, la gestión de los errores se realiza como antes.

if (!username.checkConstraint())
    errors.add("username", new ActionError("error.username.required"));
                        



Iñigo Serrano todos los derechos reservados.
Queda prohibida la reproducción total o parcial del contenido aquí expuesto.