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);
    
  • 使用空的 validate 方法扩展 BeanValidator 并将一个实例传递给您的输入。

    input.addValidator(new DummyBeanValidator());
    

希望这可以帮助。

于 2012-10-16T15:32:53.043 回答