package uk.co.pipalia; /* * Copyright 2013 Pipalia LTD * Licensed under the Apache License, Version 2.0 * * * * * * * * * * * * * * * * * * * * * * Implementing Validators for XPages * * * * * * * * * * * * * * * * * * * * * * * 1. Download Apache Commons Validator from http://commons.apache.org/proper/commons-validator/ * * 2. Add the JAR file "commons-validator-1.4.0.jar" in the build path of your database. * If you need help regarding how to add JAR files to your database refer this link * http://stackoverflow.com/q/14464827/1047998 * * 3. Copy this Java file in your Code > Java. * * 4. Add the below XML code snippet to your faces-config.xml. * <managed-bean> <managed-bean-name>validators</managed-bean-name> <managed-bean-class>uk.co.pipalia.Validators</managed-beanclass> <managed-bean-scope>view</managed-bean-scope> </managed-bean> * * And you are ready to use Validators for XPages. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Field to be validated * Code * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Email validator="#{validators.validateEmail}" * IP Address validator="#{validators.validateIPAddress}" * URL validator="#{validators.validateUrl}" * ISBN validator="#{validators.validateISBN}" * Credit Card (Any) validator="#{validators.validateAnyCreditCard}" * Credit Card (AMEX) validator="#{validators.validateAmexCreditCard}" * Credit Card (Diners) validator="#{validators.validateDinersCreditCard}" * Credit Card (Discover) validator="#{validators.validateDiscoverCreditCard}" * Credit Card (Master) validator="#{validators.validateMasterCardCreditCard}" * Credit Card (VISA) validator="#{validators.validateVisaCreditCard}" * * For more refer this: http://www.openntf.org/Projects/pmt.nsf/B7E623839C4CC95786257C11005FD614/%24file/Validators%20for%20XPages.pdf * */ import java.io.Serializable; import javax.faces.application.FacesMessage; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.validator.ValidatorException; import org.apache.commons.validator.routines.CreditCardValidator; import org.apache.commons.validator.routines.EmailValidator; import org.apache.commons.validator.routines.ISBNValidator; import org.apache.commons.validator.routines.InetAddressValidator; import org.apache.commons.validator.routines.UrlValidator; public class Validators implements Serializable { private static final long serialVersionUID = 7300894679566868915L; public void validateEmail(FacesContext facesContext, UIComponent component, Object value) { EmailValidator emailValidator = EmailValidator.getInstance(); if (!emailValidator.isValid(value.toString())) { FacesMessage message = new FacesMessage("Email is invalid."); throw new ValidatorException(message); } } public void validateIPAddress(FacesContext facesContext, UIComponent component, Object value) { InetAddressValidator ipValidator = InetAddressValidator.getInstance(); if (!ipValidator.isValid(value.toString())) { FacesMessage message = new FacesMessage("IP address is invalid."); throw new ValidatorException(message); } } public void validateUrl(FacesContext facesContext, UIComponent component, Object value) { UrlValidator urlValidator = UrlValidator.getInstance(); if (!urlValidator.isValid(value.toString())) { FacesMessage message = new FacesMessage("URL is invalid."); throw new ValidatorException(message); } } public void validateISBN(FacesContext facesContext, UIComponent component, Object value) { ISBNValidator isbnValidator = ISBNValidator.getInstance(); if (!isbnValidator.isValid(value.toString())) { FacesMessage message = new FacesMessage("ISBN is invalid."); throw new ValidatorException(message); } } public void validateAnyCreditCard(FacesContext facesContext, UIComponent component, Object value) { CreditCardValidator ccValidator = new CreditCardValidator(CreditCardValidator.AMEX + CreditCardValidator.DINERS + CreditCardValidator.DISCOVER + CreditCardValidator.MASTERCARD + CreditCardValidator.VISA); if (!ccValidator.isValid(value.toString())) { FacesMessage message = new FacesMessage("Credit card number is invalid."); throw new ValidatorException(message); } } public void validateAmexCreditCard(FacesContext facesContext, UIComponent component, Object value) { CreditCardValidator ccValidator = new CreditCardValidator(CreditCardValidator.AMEX); if (!ccValidator.isValid(value.toString())) { FacesMessage message = new FacesMessage("American Express credit card number is invalid."); throw new ValidatorException(message); } } public void validateDinersCreditCard(FacesContext facesContext, UIComponent component, Object value) { CreditCardValidator ccValidator = new CreditCardValidator(CreditCardValidator.DINERS); if (!ccValidator.isValid(value.toString())) { FacesMessage message = new FacesMessage("Credit card number is invalid."); throw new ValidatorException(message); } } public void validateDiscoverCreditCard(FacesContext facesContext, UIComponent component, Object value) { CreditCardValidator ccValidator = new CreditCardValidator(CreditCardValidator.DISCOVER); if (!ccValidator.isValid(value.toString())) { FacesMessage message = new FacesMessage("Discover credit card number is invalid."); throw new ValidatorException(message); } } public void validateMasterCardCreditCard(FacesContext facesContext, UIComponent component, Object value) { CreditCardValidator ccValidator = new CreditCardValidator(CreditCardValidator.MASTERCARD + CreditCardValidator.VISA); if (!ccValidator.isValid(value.toString())) { FacesMessage message = new FacesMessage("MasterCard credit card number is invalid."); throw new ValidatorException(message); } } public void validateVisaCreditCard(FacesContext facesContext, UIComponent component, Object value) { CreditCardValidator ccValidator = new CreditCardValidator(CreditCardValidator.VISA); if (!ccValidator.isValid(value.toString())) { FacesMessage message = new FacesMessage("Visa credit card number is invalid."); throw new ValidatorException(message); } } }