在输入类型字段中我在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