AjaxBehaviorEvent与JSF2中的ActionEvent

时间:2012-07-31 08:38:03

标签: java jsf java-ee richfaces ajax4jsf

最近我一直在努力将我正在从JSF 1.2工作的这个应用程序升级到JSF 2,并且在这个过程中我遇到了障碍,因为你可能已经知道AjaxBehaviorEvent对JSF来说都是新手,并且回到JSF 1.2并使用RichFaces 3,我能够做到以下几点:

在支持bean中有一个方法的签名

public void onSomeEvent(ActionEvent evt){
    //Process the event
}

我可以在以下两个位置调用此方法,如下所示 1 -

<h:commandButton actionListener="#{bean.onSomeEvent}" value="Process Event"/>

2 -

<h:commandButton value="Process Event" >
    <a4j:support event="oncomplete" actionListener="#{bean.onSomeEvent}" />
</h:commandButton>

现在在JSF 2中,旧的ActionEvent和新的AjaxBehaviorEvent有两种类型的事件,它们似乎都不能与另一种交换,我的意思是如果我要使用f:ajax的方法,那么它需要有AjaxBehaviorEvent它的参数列表,如果我将它与组件的普通DHTML事件一起使用,那么它需要在参数列表中有一个ActionEvent。

我想知道是否有一些方法可以用来做我曾经在JSF 2中用两种类型的事件做的事情。

谢谢大家。

1 个答案:

答案 0 :(得分:3)

我确实按照@maple_shaft的建议使用EL 2.2克服了这个问题,我所做的就是从我没有使用它的方法中删除了ActionEvent参数。