是否可以动态生成<f:validatebean>标记?</f:validatebean>

时间:2012-10-16 14:42:36

标签: jsf java-ee jsf-2 bean-validation

我正在动态生成一些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());

1 个答案:

答案 0 :(得分:3)

您可能想要探索这些路径:

  • 在输入中立即设置为true。

    input.setImmediate(true);
    
  • 使用空的validate方法扩展BeanValidator并将实例传递给您的输入。

    input.addValidator(new DummyBeanValidator());
    

希望这有帮助。

相关问题