0

私はいくつかの Primefaces 入力および出力コンポーネントを動的に生成しています。モデルを更新しながら、特定のユースケースでこれらのコンポーネントの検証を無効にできる必要があります。(保存ボタンのような)。xhtmlでそれを行う適切な方法は、使用することのようです<f:validateBean disabled="#{myBean.someCondition}/>

ただし、このコンポーネントを動的に作成する方法がわかりません。javax.faces パッケージを検索しましたが、validateBean コンポーネントが見つかりませんでした。UIInput コンポーネントで設定する必要があるプロパティになるのではないかと思いましたが、その API で概説されているメソッドのどれも、私が必要としているものではないようです。

これは可能ですか?

編集:

参考までに、私が作成しているコンポーネントは次のとおりです。

UIInput input = new InputText();
input.setId(field.getFieldKey());
input.setValueExpression("value", expressionFactory.createValueExpression(elContext, field.getFieldValue(), String.class));
input.addClientBehavior("blur", ajaxBehavior);    
input.addValidator(new BeanValidator());
4

1 に答える 1

3

次のパスを探索することをお勧めします。

  • 入力時に immediate を true に設定します。

    input.setImmediate(true);
    
  • 空の検証メソッドで BeanValidator を拡張し、インスタンスを入力に渡します。

    input.addValidator(new DummyBeanValidator());
    

お役に立てれば。

于 2012-10-16T15:32:53.043 に答える