2013-10-15 2 views
0

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

Я попытался как это:

<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.

+1

Пожалуйста, убедитесь, что у вас нет места для проверки достоверности BholaVishwakarma

+0

. Спасибо, BholaVishwakarma, тег помог мне справиться с моей проблемой. – KorobOK

ответ

0

тег помог мне разобраться с моей проблемой. Проблема была в типах и в отсутствии пользовательских преобразователей.

0

Для первого способа, попробуйте добавить неотъемлемый атрибут:

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

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

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

+0

Это было «@SessionScoped», я перешел на «@ViewScoped», но это не помогло. Перемещение ValueChangeEvent для AjaxBehaviorEvent тоже ничего не привело. – KorobOK

+0

Добавили ли вы атрибут onchange? – Omar

+0

Да. Проблема была в другом. – KorobOK

Смежные вопросы