Как выполнить управляемый метод 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 вы можете выбрать то, что вы хотите.

Другие вопросы по тегам