0

我需要拦截 h:SelectOneMenu 元素上的 valueChange 事件,但它不起作用。我能错过什么?

我尝试了这两个:

<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<<<");
}

结果,什么也没发生,日志中也没有任何错误。
我正在使用带有 jboss AS 7.1 的 NetBeans 7.3。

4

2 回答 2

0

对于第一种方法,尝试添加基本属性:

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

对于第二种方式,方法中的参数事件的类应该是 : AjaxBehaviorEvent

另外,请确保您的控制器 bean 是@ViewScoped.

于 2013-10-16T00:07:14.577 回答
0

<h:message/>标签帮助我解决了我的问题。问题在于类型和缺乏自定义转换器。

于 2013-10-18T00:05:34.840 回答