2017-02-09 148 views
1

我遇到过一些使用输入控件但没有value属性集的情况,即它们在后台bean中没有直接表示。如何处理没有辅助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. 的input元素总是必须在支持Bean参考,一切是一个设计错误
  2. 只需使用一个“虚拟”的价值指向在bean的未使用的字段。
  3. 禁止验证该输入元素。 (如何?)
  4. 以某种方式抑制MyFaces警告。 (如何?)

回答

3

1. input元素始终必须在支持Bean参考,一切是一个设计错误

事实并非如此。


2.只需使用一个“虚拟”的价值指向在bean的未使用的字段。

不,这在短期内很荒谬,最好长期困扰。


3.抑制输入元件的验证。 (如何?)

你可以做。你可以使用<f:validateBean>

<h:inputXxx> 
    <f:validateBean disabled="true" /> 
</h:inputXxx> 

4.禁止的MyFaces的莫名其妙的警告。 (如何?)

基于its source code似乎没有任何办法。你最好只在Development阶段登录它ask them阶段。