wat*_*tou 6 ajax events jsf primefaces
我试图使用onChange事件selectOneMenu,但它不起作用,当我添加onChangeattribue 时,组件不会显示.
有人能告诉我如何处理onChange事件 <p:selectOneMenu>?
这是我的观点:
<p:selectOneMenu id="service" filterMatchMode="startsWith">
<f:selectItem itemLabel="Selectionner un Service : " />
<f:selectItems value="#{newOpProgramme.listeSevice}" var="service" itemValue="#{service.serviceId}" itemLabel="#{service.serviceNom}"/>
<f:ajax event="change" execute="@this" listener="#{newOpProgramme.serviceChange()}" render="nomCdp"/>
</p:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
这是<f:ajax listener>请求范围bean中的方法:
public void serviceChange() {
System.out.println("change");
}
Run Code Online (Sandbox Code Playgroud)
但是,当我更改菜单时,没有打印任何内容.
这是怎么造成的,我该如何解决?
Bal*_*usC 26
首先,onChange是错误的事件名称.是的change.其次,如果您打算调用HTML属性名称,onChange也是错误的属性名称.是的onchange.
回到你的具体问题; 标准JSF <f:ajax>与PrimeFaces组件不兼容.你应该使用PrimeFaces <p:ajax>而不是.
<p:selectOneMenu ...>
...
<p:ajax listener="#{newOpProgramme.serviceChange()}" update="nomCdp" />
</p:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
请注意,我省略了event和process属性.他们都已经右边默认值valueChange,并@this分别.