在輸入類型字段中我在jsp中爲value
屬性綁定了一個類型爲double
的變量(讓我們調用foo
)。我爲foo
設置了一個setter和getter,並且還爲此輸入註冊了一個ValueChangedListener
。該字段的autosubmit
屬性設置爲true。當用戶清除輸入並導航到下一個字段時,將調用valueChangedListener
中的代碼,並且ValueChangedEvent
的newValue
將變爲空。我怎樣才能防止這一點?如何防止將null值作爲ValueChangedEvent的新值?
我試着從setter方法處理這個,但它似乎沒有調用setter,並且valueChangedListener
被首先調用。規範沒有說應該先調用setter來將用戶編輯的值填充到組件,然後只有ValueChangedListener被觸發?
P.S:我使用ADF RichInputText作爲輸入,但我認爲它與ADF無關,但與核心JSF機器無關。因此不要將其標記爲ADF問題。
什麼是功能要求?你爲什麼要防止這個?這是完全預期的行爲。至於調用順序,這也完全按照規範。請注意,如果您對'getOldValue()'不感興趣,'valueChangeListener'實際上可能是實際工作的錯誤工具。 – BalusC
@BalusC我需要驗證新值,我對舊值不感興趣。另外爲什麼在二進制文件不會被調用之前,
valueChangeListener
?我還有什麼其他選擇? – Geek驗證值?你爲什麼不使用普通的'Validator'?至於調用順序,爲什麼它應該是?一旦調用者被調用,舊的值就不再可用,並且這改變了值更改監聽器的實際目的。 – BalusC