我遇到了一个无法解决的问题,我有一个带有Value Chang Listener的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>
我得到了我的backbean:
public void setActiveFromAllList(ValueChangeEvent event)
{
int id = Integer.parseInt(event.getNewValue().toString());
Doing some stuff..
}
答案 0 :(得分:1)
我想你可能想要像这样使用ajax事件:
<h:selectOneListBox .....>
<f:ajax execute="@form" listener="#{normalbesoksgrenController.setActiveFromAllList}" event="change" reder=":whatEverYouWant" />
</h:selectOneListBox>
execute属性定义在处理ajax请求之前应该提交的内容。