1

カスタム Validator で定義しました (javax.faces.validator.Validator インターフェイスを実装し、faces-config で定義します)。コンポーネント コード ( Renderer クラス) 内でこのバリデータを呼び出すには、カスタム コンポーネントが必要です。xhtml をできるだけきれいにしたいのですが、xhtml に埋め込んでバリデーターを個別に呼び出したくありません。

<f:validator validatorId='xx' /> 

私のコンポーネントタグ内。実装方法と同じように

getConvertedValue(FacesContext context, UIComponent component, Object submittedValue) 

Renderer 内で変換を処理するために、Renderer 内で検証を処理するために同様のことを行うことはできますか?

ありがとう

4

1 に答える 1

2

これは、レンダラー レベルではなく、UI コンポーネント レベルで行われます。カスタム入力コンポーネントは確実に拡張されている必要がありUIInputます。そうしないと、他の多くの (将来の) 問題が発生したり、繰り返しコードを記述して時間を無駄にしたりすることになります。カスタム入力コンポーネントが extends の場合、継承されたメソッドを使用してコンポーネントのコンストラクタなどにUIInput追加できます。ValidatorUIInput#addValidator()

public MyCustomInputComponent() {
    addValidator(new MyCustomValidator());
}

実装済みのUIInput#validate()メソッドは、すべての変換、検証、およびメッセージ処理を自動的に行います。

于 2012-04-13T19:37:21.800 に答える