如何在 selectOneMenu 更改时执行托管 bean 方法?
How to execute managed bean method on selectOneMenu change?
我有以下托管 Bean:
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 Class 名称是可怕的。您可以以大写字母开头,JSF 会为您管理它,因此您仍然可以使用
listener="#{myBean.mostrarCentroSeleccionado()}"
如果这不符合您的要求,您可以使用
@ManagedBean(名字="myBean ")
除了 myBean,您可以选择任何您想要的。
问题出在标签中:
<p:ajax listener="#{MyBean.function()}"/>
函数必须有“()”,因为我不参加活动。
我有以下托管 Bean:
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 Class 名称是可怕的。您可以以大写字母开头,JSF 会为您管理它,因此您仍然可以使用 listener="#{myBean.mostrarCentroSeleccionado()}" 如果这不符合您的要求,您可以使用 @ManagedBean(名字="myBean ") 除了 myBean,您可以选择任何您想要的。
问题出在标签中:
<p:ajax listener="#{MyBean.function()}"/>
函数必须有“()”,因为我不参加活动。