我有以下托管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()}"/>
该函数必须具有"()",因为我不会参加该事件。