Jsf 基于selectOneMenu onchange的重新加载组件
也许有人能帮我澄清一下。 我有一个h:SelectOne菜单,当用户从列表中选择某个内容,然后根据结果重新发送链接时,该菜单应立即执行操作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: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>