不适用于PrimeFaces组件

前端之家收集整理的这篇文章主要介绍了不适用于PrimeFaces组件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我尝试使用selectOneMenu的onChange事件,但它不起作用,当我添加onChange属性时,组件不会显示.

有人能告诉我如何处理< p:selectOneMenu>的onChange事件?

这是我的观点:

<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>

这是< f:ajax监听器>请求范围bean中的方法

public void serviceChange() {
    System.out.println("change");
}

但是,当我更改菜单时,没有打印任何内容.

这是怎么造成的,如何解决

首先,onChange是错误的事件名称.这是改变.其次,如果您打算调用HTML属性名称,onChange也是错误属性名称.它正在改变.

回到你的具体问题;标准的JSF< f:ajax>与PrimeFaces组件不兼容.您应该使用PrimeFaces自己的<p:ajax>.

<p:selectOneMenu ...>
    ...
    <p:ajax listener="#{newOpProgramme.serviceChange()}" update="nomCdp" />
</p:selectOneMenu>

请注意,我省略了事件和流程属性.它们都分别具有valueChange和@this的正确默认值.

也可以看看:

> What values can I pass to the event attribute of the f:ajax tag?
> Understanding PrimeFaces process/update and JSF f:ajax execute/render attributes

猜你在找的Ajax相关文章