ajax - <f :ajax> doesn't work on PrimeFaces component

标签 ajax jsf events primefaces

我试图使用 onChange selectOneMenu的事件,但它不起作用并且当我添加 onChange 时该组件不显示属性。

有人能告诉我如何处理 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>

这是 <f:ajax listener>请求范围bean中的方法:
public void serviceChange() {
    System.out.println("change");
}

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

这是怎么引起的,我该如何解决?

最佳答案

首先,onChange是错误的事件名称。它是 change .其次,如果你打算调用HTML属性名,onChange也是错误的属性名称。它是 onchange .
回到你的具体问题;标准 JSF <f:ajax>与 PrimeFaces 组件不兼容。您应该使用 PrimeFaces 自己的 <p:ajax> 反而。

<p:selectOneMenu ...>
    ...
    <p:ajax listener="#{newOpProgramme.serviceChange()}" update="nomCdp" />
</p:selectOneMenu>
请注意,我省略了 eventprocess属性。他们都已经有了正确的默认值 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 - <f :ajax> doesn't work on PrimeFaces component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18329433/

    相关文章:

    javascript - 如何使用网络语言将一个变量连接到另一个变量的名称

    java - 将 xhtml 样式提取到 css?

    javascript - Meteor - 如何在模板事件函数中正确路由

    javascript - 我无法通过 javascript 中的 $().click(calculator.press ("") 访问我的计算器对象

    ajax - 为什么 AJAX 在 Netscape Navigator 中不起作用?

    java - 在 Spring MVC 中使用 Ajax 和 SimpleFormController

    javascript - 将输入值发送到 javascript 函数

    java - Chrome 在添加另一个 <h :column> 时给出错误 "Extra content at the end of the document"

    jsf - 使用 p :dataExporter 将大型数据集导出为 XLSX 时超时

    java Swing如何消费文档事件