h: SelectOneMenu valueChangeListenr не вызывает

Мне нужно перехватить событие valueChange в элементе h: SelectOneMenu, но это не работает. Что я мог пропустить?

Я пробовал и то, и другое:

<h:selectOneMenu value="#{MainPage.<value_name>}"
                         valueChangeListener="#{MainPage.<method_name>}">
...
</h:selectOneMenu>

и это:

<h:selectOneMenu value="#{MainPage.<value_name>}">
...
    <f:ajax render="@form" event="change" listener="#{MainPage.<method_name>}"/>
</h:selectOneMenu>

они не хотят работать.
Вот мой метод:

public void <method_name>(ValueChangeEvent e){
    ...
    System.out.println(">>>Changed<<<");
}

в результате ничего не произошло, и в журналах нет ошибок.
Я использую NetBeans 7.3 с jboss AS 7.1.


person KorobOK    schedule 15.10.2013    source источник
comment
Пожалуйста, убедитесь, что у вас нет места ошибки проверки ‹p: message, чтобы убедиться, что, если ошибка выйдет или нет, если ошибка проверки присутствует, немедленно поставьте = true, что должно сработать   -  person BholaVishwakarma    schedule 16.10.2013
comment
Спасибо, Бхола Вишвакарма, тег ‹h: message /› помог мне разобраться с моей проблемой.   -  person KorobOK    schedule 18.10.2013


Ответы (2)


В первом случае попробуйте добавить существенный атрибут:

<h:selectOneMenu onchange="submit()" ... >

Для второго способа класс события paramter в методе должен быть: AjaxBehaviorEvent.

Также убедитесь, что ваш бин-контроллер @ViewScoped.

person Omar    schedule 16.10.2013
comment
Это было «@SessionScoped», я изменил его на «@ViewScoped», но это не помогло. Замена ValueChangeEvent на AjaxBehaviorEvent тоже ни к чему не привела. - person KorobOK; 16.10.2013
comment
Вы добавили атрибут onchange? - person Omar; 17.10.2013
comment
да. Проблема была в другом. - person KorobOK; 18.10.2013

Тег <h:message/> помог мне разобраться с моей проблемой. Проблема заключалась в типах и отсутствии кастомных преобразователей.

person KorobOK    schedule 18.10.2013