是否可以通过将 <f:ajax> 标记放在 <h:inputText> 中来触发 Web 流转换,以便在每次按键时发送请求?
我已经尝试过了,ajax 请求由浏览器发送,由应用程序接收并由 JSF 处理,但 Web Flow 未观察到该事件。
<!-- does not trigger transition -->
<h:inputText id="search" value="#{friendsForm.searchUsername}">
<f:ajax listener="search"
execute="@this"
render="users"
event="keypress"/>
</h:inputText>
<!-- does trigger transition -->
<h:commandButton value="search" action="search">
<f:ajax listener="search" execute="search" render="users"/>
</h:commandButton>
对 commandButton 执行相同操作时,它按预期工作。查看源代码可以看到按钮的基类 UICommand 调用其默认的 ActionListener 最终触发转换。似乎 inputText 没有动作侦听器,因此没有在那里处理事件。
最后,我可以通过在每次按键时以编程方式单击隐藏按钮来解决此问题,但如果我能避免这种情况,我会这样做。
提前致谢...