2012-02-01 8 views
0

いくつかのコンポーネントで使用できるカスタムバリデータを使用して値を動的に検証したいと考えています。カスタムバリデータは、その使用状況に応じて、異なるManagedBeansからそれらの値を取得します。カスタムJSFバリデータでManagedBeansを動的に取得

値を取得するManagedBeanを特定する方法は?だから私はそれを取得し、それを検証し、ManagedBeanに戻すことができます。

マイカスタムバリデータ:

@FacesValidator(value = "valid") 
public class DateValidator implements Validator { 

    @Override 
    public void validate(FacesContext context, UIComponent component, 
      Object value) throws ValidatorException { 
     // Bean bean = ? 
    } 
} 
+0

これは 'Validator'の本当に奇妙な使用例です。実際に 'Converter 'が必要ないのですか? 'Validator'はデータを操作/変換すべきではなく、単にデータをチェック/検証し、それをアンタッチするべきです。 – BalusC

+0

説明がついて申し訳ありません。私はバリデーターのデータを操作しません。このBeanには検証のために必要なデータがあるため、後でコンポーネントのサブミット値が保存されるManagedBeanを取得したいだけです。 – buderu

答えて

0

私はそれがまだ更新されていない検証フェーズモデルのように良い方法であると思ういけない、何を取得していると、ビューからわずか入力値です。私はなぜそこにBeanのインスタンスが必要なのだろうかと思います。検証が他のコンポーネントに依存する場合は、link @ SOValidator for multiple fieldsを参照してください。

これを検証して元に戻す必要があるのは、検証フェーズがすべてであること、検証者で検証されたこと、失敗した場合はマネージドBeanに渡されないということです。

は、JSFのライフサイクルのために、このリンクを見て、このことができますJSF Lifecycle

希望を持っています!

関連する問題