2012-04-18 49 views
0

我有听众的问题在没有被调用下面selectOneMenu用于没有被调用监听

<h:selectOneMenu id="Country" value="#{bean.country}"> 
    <f:ajax render="inputId" listener="#{backingBean.clearMethod}" /> 
    <f:selectItem itemLabel="-Select One-" itemValue="_" noSelectionOption="true"/> 
    <f:selectItems value="#{optionValues['countryList']}" /> 
</h:selectOneMenu> 
<h:inputText id="inputId" value="#{bean.city}"/> 

的optionValues解析器用于解析从XML文件的国家列表选项。 它有美国,加拿大和墨西哥。我的问题是,当我将选项从美国更改为加拿大或选择一个美国时,clearMethod被调用。但是当我将选项从USA更改为Select One时,不会调用clearMethod

任何帮助,将不胜感激。

回答

1

我认为问题是noSelectionOption中的itemValue属性。它可能会导致验证错误,因此不会调用监听器。

尝试删除itemValue属性。

(顺便说一句:在你的代码的selectOneMenuvalue属性不绑定到后台bean的领域或者是一个错字?)

+0

拆除项目值没有帮助,但它工作时,我改变了值从'_'到其他东西,比如'SelectOne',它可以工作 – 2012-04-19 19:44:37

+0

如果我在提交表单时更改'itemValue',它接受'SelectOne'值并提交页面。 – 2012-04-19 19:50:48