The standard validators supplied in the JavaServer Faces Reference 
      Implementation provide common validation checks for numeric ranges and 
      string lengths. If you need more complex validation rules and checks, 
      you can implement your own validation code by either implementing a 
javax.faces.validator.Validator interface, or creating a bean method 
      that performs the custom validation.
    
      It is beyond the scope of this topic to teach you how to implement the 
Validator interface. Briefly, in the custom implementation you define a 
      method to override the validate method of the 
      Validator interface. Use 
      javax.faces.validator.ValidatorException to throw the appropriate 
      exceptions and javax.faces.application.FacesMessage to 
      generate the corresponding error messages.
    
You may choose to configure the validator's attributes in the implementation. If you do so, you do not have to create a custom tag for registering the validator on a component. If you choose not to configure the validator's attributes in the implementation, then you must create a custom tag, and provide in the implementation a set of accessor methods for any attributes on the tag. The second choice provides a way to configure the validator's attributes from the page during application development. For example, you might want to let the page author specify the format patterns that are allowed for an employee number input field.
      In addition, if you wish to have configuration property values saved and 
      restored with the view, your implementation must also implement 
      StateHolder. For more information about the Validator
       interface, see the Javadoc for javax.faces.validator.Validator
, or go to the java.sun.com web page
http://java.sun.com/j2ee/javaserverfaces/
    
To use a custom validator in your application (with or without a custom tag), you need to:
f:validator
         tag within the component and reference the validator's registered ID 
        in the tag's validatorID attribute. If there is a custom 
        tag, nest the custom tag within the component and specify any 
        attributes for the tag.
      Creating a bean method for performing validation is a good way to provide a custom validator for use within a specific application because the method can access other instance fields of the class.
      Like the validate method of the Validator 
      interface, your bean method must accept a FacesContext, a 
      UIComponent whose data is to be validated, and the data to be validated. 
      To use a validation bean method on a component, use the validator
 attribute of the component to reference the method via a method binding 
      expression.
    
      Registering a Custom Converter or 
      Validator in an Application
      Registering a Custom Validator on a Component
Referencing a Bean Method That Performs Validation
    
Copyright © 1997, 2004, Oracle. All rights reserved.