2012-05-08 14 views
0

JSFのライフサイクルを正しく理解している場合は、「適用リクエスト」段階でバリデータを登録します。 これは、Process Request Eventsフェーズで呼び出されるdecode()メソッド内にあるComponentオブジェクトハンドルにaddValidatorを呼び出せないということですか?その場合、コンポーネントの属性値に基づいてカスタムバリデータを動的に追加する方法はありますか?カスタムバリデータを動的に追加するJSF 1.2

おかげ

+0

あなたは、あなたがバリデータを選択し、それを実行することができます属性にneed.Basedバリデータを飾るカスタムバリデータを作成してみてくださいすることができますコンポーネントの –

答えて

0

私は動作するはず願ってすることに似て..です

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); 
} } 
+0

変数requiredValidatorTypeをどのように設定するのですか? – phewataal

+0

リンク(http://www.ibm.com/developerworks/java/library/j-jsf3/)または(http://docs.oracle.com/javaee/5/tutorial/doc/bnauw.html)を参照してください。 ) –

+0

私はあなたが私を助けた検証の抽象化の答えとしてマークします。 ValidatorWrapperをコンポーネント内でどのように初期化するかについてもっと興味がありました。私はmyComponent.addValidator(ValidatorWrapper)のようなことをしようとしていました。 – phewataal

関連する問題