Está en: | Inicio >> ISValidator >> Ejemplos >> Struts Básico | Sábado 17 de Mayo de 2025 |
![]() | ![]() |
|
Ejemplos de ISValidatorEsta 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ónEste 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 ejemploEste 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ódigoLos 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")); |
|