3

最近我一直在尝试将我正在开发的这个应用程序从 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 中对这两种类型的事件所做的事情。

谢谢你们。

4

1 回答 1

3

正如@maple_shaft 所建议的那样,我确实设法通过使用EL 2.2 来克服这个问题,我所做的是我从我没有使用它的方法中删除了ActionEvent 参数。

于 2012-07-31T11:51:22.913 回答