我遇到过一些情况,其中使用的输入控件没有设置value
属性,即它们在辅助bean中没有直接表示。
用户输入完全由ajax侦听器处理。一个例子是column filters in the primefaces table的输入元素。
但是,在处理此类输入字段时, MyFaces 会警告我每个字段:
Feb 09, 2017 3:04:51 PM javax.faces.validator.BeanValidator validate
WARNING: cannot validate component with empty value: my_form:myTableId:j_id_1s
在某种程度上,这里已经提到了这个问题:p:datatable filter: cannot validate component with empty value
我的问题是:在这种情况下,最佳做法是什么?
答案 0 :(得分:3)
1。输入元素始终在辅助bean中有引用,其他一切都是设计错误
不正确。
2。只需使用"虚拟"指向bean中未使用字段的值。
没有。这在短期内是荒谬的,在长期内最让人困惑。
3。禁止验证该输入元素。 (如何?)
你可以做到。您可以使用<f:validateBean>
。
<h:inputXxx>
<f:validateBean disabled="true" />
</h:inputXxx>
4。以某种方式抑制MyFaces警告。 (如何?)
根据its source code,似乎没有任何办法。您最好ask them仅在Development
阶段进行记录。