如何在选择OneMenu更改时执行托管Bean方法



我有以下托管Bean:

import javax.faces.bean.ManagedBean;
@ManagedBean
public class MyBean {
    public void mostrarCentroSeleccionado() {
        System.out.println("Value changed");
    }
}

在我的.xhtml文件中,有以下选择菜单:

<p:selectOneMenu value="#{MyBean.centros.idcentro}" >
    <p:ajax event="change" listener="#{MyBean.mostrarCentroSeleccionado}" />
    <f:selectItem itemLabel="Seleccione un centro" itemValue="" />
    <f:selectItems value="#{MyBean.centros}" />
</p:selectOneMenu>

当我运行该代码时,出现以下异常:

javax.el.MethodNotFoundException

提前致谢

如果Holger的解决方案成功了,那就好了。

但是:以小写字母开始 Java 类名是很可怕的。您可以从大写字母开始,JSF 将为您管理它,因此您仍然可以使用 listener="#{myBean.mostrarCentroSeleccionado()}"如果这不符合您的要求,您可以使用 @ManagedBean(名称 = "myBean")代替myBean,你可以选择你想要的任何东西。

问题出在标签上:

<p:ajax listener="#{MyBean.function()}"/>

该函数必须具有"()",因为我不会参加该事件。

相关内容

  • 没有找到相关文章