繁体   English   中英

如何在selectOneMenu更改上执行托管bean方法?

[英]How to execute managed bean method on selectOneMenu change?

我有以下托管豆:

import javax.faces.bean.ManagedBean;

@ManagedBean
public class MyBean {

    public void mostrarCentroSeleccionado() {
        System.out.println("Value changed");
    }

}

在我的.xhtml文件中,下面的selectOneMenu:

<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(name =“ myBean” )您可以选择自己想要的东西来代替myBean。

问题出在标签中:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM