在我正在处理的一个应用程序中遇到一个奇怪的问题。这是一个使用Richfaces 4.3的网络应用程序。我们正在使用<h:selectOneMenu>
内部<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>
请就可能的错误原因提出建议。