在我正在处理的一个应用程序中遇到一个奇怪的问题。这是一个使用 Richfaces 4.3 的网络应用程序。有一个<h:selectOneMenu>
and 里面我们正在使用一个<a4j:ajax>
元素来触发一个更改事件,只要选定的项目被更改。下面是这个的代码:
<h:selectOneMenu style="width:225px" id="mId" value="#{dataBean.meId }">
<f:selectItem itemLabel="-----Select----"></f:selectItem>
<f:selectItems value="#{dataBean.mes}" />
<a4j:ajax listener="#{dataBean.findId }" event="change" execute="@form" render="mId">
</a4j:ajax> </h:selectOneMenu>
问题是当我第一次从列表中选择值时。它会自动取消选择该值并将我返回到默认的“-----select-----”值,并且不会触发侦听器方法。我已经尝试在 Eclipse 调试模式下运行应用程序,并且我在方法开始处放置的断点没有被触发。第二次选择时,它触发了断点并按预期工作。
也尝试了以下方法。但结果也是一样的:
<h:selectOneMenu style="width:225px" id="mId" value="#{dataBean.meId }
valueChangeListener="#{dataBean.findId1}">
<f:selectItem itemLabel="-----Select----"></f:selectItem>
<f:selectItems value="#{dataBean.mes}" />
<a4j:ajax event="valueChange" execute="@form" render="mId">
</a4j:ajax> </h:selectOneMenu>
请就可能的错误原因提出建议。