在设计动态 Web 页面时,可能会想对以其它方式进行验证的数据使用定制验证器。定制验证器查看提交的值然后对它执行验证。例如,可以将定制验证器添加至输入文本字段以便验证器可确保提交的值包含九个数字。如果提交的值不包含九个数字,则定制验证器在页面显示时呈示错误消息。
package validator; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.validator.Validator; import javax.faces.validator.ValidatorException; public class MyValidator implements Validator { /* (non-Javadoc) * @see javax.faces.validator.Validator#validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object) */ public void validate(FacesContext arg0, UIComponent arg1, Object arg2) throws ValidatorException { // TODO Auto-generated method stub } public void validate(FacesContext arg0, UIComponent arg1, Object arg2) throws ValidatorException { System.out.println("my custom validator"); //TODO: Add your custom validation code here. This code will be execured during the validation //phase of the JSF lifecycle. If any validation errors occur you can throw an exception message //that in turn can be displayed using a h:message (or h:messages) component. }
<validator> <validator-id>MyValidator<validator-id> <validator-class>validator.MyValidator<validator-class> <validator>
<h:inputText styleClass="inputText" id="text1"><f:validator validatorId="MyValidator"></f:validator></h:inputText>