2017-02-09 149 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階段。