Jsf 基于selectOneMenu onchange的重新加载组件

Jsf 基于selectOneMenu onchange的重新加载组件,jsf,seam,Jsf,Seam,也许有人能帮我澄清一下。 我有一个h:SelectOne菜单,当用户从列表中选择某个内容,然后根据结果重新发送链接时,该菜单应立即执行操作 <h:selectOneMenu value="#{backingBean.itemSelected}" valueChangeListener="#{backingBean.methodThatDoesStuff}" onchange="submit()" > <s:selectItems var="_items" value=

也许有人能帮我澄清一下。 我有一个h:SelectOne菜单,当用户从列表中选择某个内容,然后根据结果重新发送链接时,该菜单应立即执行操作

<h:selectOneMenu value="#{backingBean.itemSelected}"  valueChangeListener="#{backingBean.methodThatDoesStuff}" onchange="submit()" >
    <s:selectItems var="_items" value="#{backingBean.itemList}"
                    label="#{_items.Name}"  /> 
    <s:convertEntity />
</h:selectOneMenu>
这很有效

但这会将我的aComponent设置为上一个值,因此第一次它将为null,然后将根据最后选择的项更改设置,因此我总是落后一个:

public void methodThatDoesStuff(){

            Item item = this.itemSelected;  
                .... do stuff, set a flag to display link later
        }
我试过:

<h:selectOneMenu value="#{backingBean.itemSelected}" >
<s:selectItems var="_items" value="#{backingBean.itemList}" label="#{_items.Name}"  /> 
<a:support event="onchange" ajaxSingle="true" reRender="aComponent" action="#{backingBean.methodThatDoesStuff}" />
<s:convertEntity />
</h:selectOneMenu>
但无论我是否使用ValueChangeEvent,这都不起作用。 使用事件对象是获取当前选定项的唯一方法吗?
这是JSF 1.2和Seam 2

在selectOneMenu上设置attribute immediate=true。

我不确定为什么在应用程序事件阶段之前未填充绑定属性。可能是发生了验证错误,因此该值从未更新?无论如何,请尝试实现,以获取有关每个阶段上发生的情况的更详细信息。缺少“在操作中”属性。这是不是在转移注意力?maple_shift,我没有看到任何验证错误,并且在事件阶段之后,值确实得到了更新。thanx Baz,但这不起作用,这是我尝试的第一件事情之一。
<h:selectOneMenu value="#{backingBean.itemSelected}" >
<s:selectItems var="_items" value="#{backingBean.itemList}" label="#{_items.Name}"  /> 
<a:support event="onchange" ajaxSingle="true" reRender="aComponent" action="#{backingBean.methodThatDoesStuff}" />
<s:convertEntity />
</h:selectOneMenu>