我正在动态生成一些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());
答案 0 :(得分:3)
您可能想要探索这些路径:
在输入中立即设置为true。
input.setImmediate(true);
使用空的validate方法扩展BeanValidator并将实例传递给您的输入。
input.addValidator(new DummyBeanValidator());
希望这有帮助。