【发布时间】:2017-08-03 13:30:05
【问题描述】:
我需要一个侦听器函数来检测用户何时清除了 inputText 字段。当文本字段中输入了新字符串时,支持 bean 的值会立即更新,然后调用侦听器函数,但是,通过调试,我注意到当清除字符串时,支持 bean 变量未设置为 null直到听众回来之后。由于我的侦听器函数依赖于 (backingBeanvariable == null) 测试,这会导致我的功能出现错误。有没有办法解决这个问题?
我的 xhtml:
<p:column>
<p:inputText id="inputText" value="#{backingBean.variable}"
title="someTitle">
<p:ajax resetValues="true" listener="#{backingBean.onChange()}" />
</p:inputText>
</p:column>
Backing Bean 监听函数:
public void onUiiTypeChange()
{
if (variable == null)
{
// some logic
}
}
编辑:当字段被清除时,变量可能会设置为空字符串而不是 null。无论哪种方式,直到侦听器函数返回后才会发生这种情况。即,如果字段在被清除之前包含“asdf”,则在调用侦听器函数时变量仍将设置为“asdf”。
【问题讨论】:
-
仅供参考,您的示例在我的设置中正常工作,我无法重现。似乎存在不一致,正如您所说,您通过调试看到该字段在调用侦听器后更新为 null,但是您正确地注意到该变量可能已设置为空字符串(这是默认行为)。因此,更彻底的调试可能会告诉您发生了什么。
-
请按照stackoverflow.com/tags/jsf/info的要求将PF和JSF版本添加到问题中
标签: jsf primefaces