1

我有一个无法解决的问题,我有一个带有 Value Chang 侦听器的 selectOneListbox 并提交 onclick。它工作得很好,但我注意到的问题是我对表单中其他元素的 Set 和 Get 方法在捕获 ValueChangeListener 的方法之后运行。而且我无法从表单中的元素中使用正确的数据,我该如何解决这个问题?

所以我进入了我的 selectOneListbox:

 <h:selectOneListbox onclick="Submit();" 
valueChangeListener="#{normalbesoksgrenController.setActiveFromAllList}" 
size="20" value="#{normalbesoksgrenController.currentVardTillfalleID}">

 <f:selectItems itemValue="#{item.vardTillfalle.id}" itemLabel="# 
{normalbesoksgrenController.getDateAndTime(item.getVardTillfalle().getStartTid())}"
var="item" value="#{normalbesoksgrenController.besokList}" ></f:selectItems>

             </h:selectOneListbox>

我得到了我的豆:

public void setActiveFromAllList(ValueChangeEvent event)
{

    int id = Integer.parseInt(event.getNewValue().toString());

   Doing some stuff..


}
4

1 回答 1

1

我想你可能想像这样使用 ajax 事件:

    <h:selectOneListBox .....>
       <f:ajax execute="@form" listener="#{normalbesoksgrenController.setActiveFromAllList}" event="change" reder=":whatEverYouWant"  />
    </h:selectOneListBox>

execute 属性定义了在处理 ajax 请求之前应该提交的内容。

于 2013-06-11T14:24:34.790 回答