如何应对"瞬态"没有支持bean表示的输入元素?

时间:2017-02-09 14:38:42

标签: jsf primefaces bean-validation myfaces

我遇到过一些情况,其中使用的输入控件没有设置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

我的问题是:在这种情况下,最佳做法是什么?

  1. 输入元素始终在辅助bean中有引用,其他一切都是设计错误
  2. 只需使用"虚拟"指向bean中未使用的字段的值。
  3. 禁止验证该输入元素。 (如何?)
  4. 以某种方式抑制MyFaces警告。 (如何?)

1 个答案:

答案 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阶段进行记录。