如果我正确理解JSF生命周期,它会在应用请求阶段注册验证程序。 这是否意味着我无法将addValidator调用到在Process Request Events阶段被调用的decode()方法内部的Component对象句柄中?如果是这样,是否还有其他方式根据组件的属性值动态添加自定义验证器?JSF 1.2动态添加自定义验证程序
感谢
如果我正确理解JSF生命周期,它会在应用请求阶段注册验证程序。 这是否意味着我无法将addValidator调用到在Process Request Events阶段被调用的decode()方法内部的Component对象句柄中?如果是这样,是否还有其他方式根据组件的属性值动态添加自定义验证器?JSF 1.2动态添加自定义验证程序
感谢
我希望应该工作类似于..
public class ValidatorWrapper implements Validator {
private DoubleRangeValidator dbRangeValidator;
private LongRangeValidator lRangeValidator;
private String requiredValidatorType;/*An attribute to choose the type of validator*/
public ValidatorWrapper(){
dbRangeValidator = new DoubleRangeValidator(10.01, 20.99);lRangeValidator = new LongRangeValidator(10, 20);
}
@Override
public void validate(FacesContext context, UIComponent component,
Object value) throws ValidatorException {
if("LONG".equalsIgnoreCase(requiredValidatorType))
lRangeValidator.validate(context, component, value);
else if("DBL".equalsIgnoreCase(requiredValidatorType))
dbRangeValidator.validate(context, component, value);
} }
你可以尝试创建一个自定义的验证装饰你的属性need.Based的验证,您可以选择验证并运行它在组件上。 –