Как выполнить управляемый метод bean при изменении selectOneMenu?
У меня есть следующий управляемый бин:
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
заранее спасибо
2 ответа
Решение
Проблема была в теге:
<p:ajax listener="#{MyBean.function()}"/>
Функция должна иметь "()", потому что я не принимаю событие.
Если решения Хольгера сработают, это нормально.
НО: ужасно начинать начинать имя класса Java со строчной буквы. Вы можете начать с заглавной буквы, и JSF будет управлять вами, поэтому вы все равно можете использовать listener="#{myBean.mostrarCentroSeleccionado()}" Если это не соответствует вашим требованиям, вы можете использовать @ManagedBean(name = "myBean ")) Вместо myBean вы можете выбрать то, что вы хотите.