Jsf 将参数传递给a4j:ajax方法

Jsf 将参数传递给a4j:ajax方法,jsf,jsf-2,ajax4jsf,Jsf,Jsf 2,Ajax4jsf,我试图使用为一个方法提供一个刚刚在表单上输入的值 <h:selectOneMenu id="aa" value="#{colorClass.color}"> <f:selectItems value="#{myChoices.colorOptions}"/> <a4j:ajax event="change" render="colorCode" execute="#{myChoices.getColorCode(colorClass

我试图使用
为一个方法提供一个刚刚在表单上输入的值

<h:selectOneMenu id="aa" value="#{colorClass.color}">
    <f:selectItems value="#{myChoices.colorOptions}"/>
    <a4j:ajax event="change" render="colorCode" 
        execute="#{myChoices.getColorCode(colorClass,colorClass.color)}"/>
</selectOneMenu>
调用该方法,查找颜色代码并重新绘制表单


如何“获取”刚刚输入的值,以便将其作为参数传递给方法?

您需要的是
侦听器
属性,而不是
执行
属性。
execute
属性应指向要提交的客户端ID集合(在
中默认为
@this
,在
中默认为
@form
)。但是,在您的特定情况下,它返回
void
,并保持
execute
为空。
listener
属性应该指向bean操作侦听器方法。相应地进行修正:

<a4j:ajax event="change" render="colorCode" 
    listener="#{myChoices.getColorCode(colorClass,colorClass.color)}"/>

非常感谢,这次成功了!
<a4j:ajax event="change" render="colorCode" 
    listener="#{myChoices.getColorCode(colorClass,colorClass.color)}"/>
<a4j:ajax event="change" render="colorCode" 
    listener="#{myChoices.getColorCode(colorClass.color)}"/>