【发布时间】:2026-02-12 14:25:32
【问题描述】:
我有一个按预期工作的最小、完整且可验证的示例,其中有一个我没有完成理解的问题。代码如下所示,其行为主要包括从 PF ajaxified <p:selectOneListbox> 列表中选择一个项目,并在 JSF <h:outputText> 元素上显示项目的值。
<h:form id="myform">
<p:selectOneListbox id="myselect" value="#{bean.optionSelected}">
<p:ajax listener="#{bean.onChange}" process="myselect" update="toupdate" onstart="onstart()" oncomplete="oncomplete()" onerror="onerror()" onsuccess="onsuccess()"/>
<f:selectItem itemLabel="Option 1" itemValue="1" />
<f:selectItem itemLabel="Option 2" itemValue="2" />
<f:selectItem itemLabel="Option 3" itemValue="3" />
</p:selectOneListbox>
<h:outputText id="toupdate" value=">#{bean.optionSelected}" />
</form>
看元素,不知道具体是什么事件导致ajax请求发送到服务器,也就是不知道触发的事件是不是valuechange 事件或其他。换句话说,我错过了以这种方式编码的<p:ajax> 元素:
<p:ajax event="name_of_the_event" .../>
而这个疑问让我不知道后备 bean 端的侦听器方法要使用的接收事件的类:
public void onChange(??? event)
任何澄清/解释将不胜感激。谢谢。
【问题讨论】:
-
通常/良好的做法是,如果答案正确且有帮助,至少要“接受”并且如果它有点用处,也可以投票。
标签: ajax jsf primefaces