【问题标题】:Implement own ActionListener in JSF在 JSF 中实现自己的 ActionListener
【发布时间】:2012-05-08 09:22:34
【问题描述】:

如何在 JSF 中实现自己的 ActionListener。

我需要它把这个动作监听器附加到我正在构建的动态组件上..

我正在尝试像这样使用 MethodExpression:-

HtmlCommandLink link = new HtmlCommandLink();
        link.setId("linkId");
FacesContext context = FacesContext.getCurrentInstance();
        MethodExpression methodExpression = context.getApplication().getExpressionFactory().createMethodExpression(
            context.getELContext(), "#{bean.actionListener}", null, new Class[] { ActionEvent.class });
link.addActionListener(new MethodExpressionActionListener(methodExpression));

但是,有没有其他方法可以将自定义 actionListener 附加到动态生成的组件。以及在这种情况下 MethodExpression 的使用究竟是什么。

有一点是addActionListenerMethodExpressionActionListener为参数,我们需要在其中指定methodExpression对象..

但这背后的真正功能是什么……我浏览了 MethodExpression 的 javadoc,但发现它没有多大用处。

【问题讨论】:

    标签: dynamic jsf-2 richfaces actionlistener


    【解决方案1】:

    addActionListener 的参数类型为ActionListener。使用 this 而不是 MethodExpressionActionListener,它是一个带有单个方法的接口:

    public void processAction(ActionEvent event) throws AbortProcessingException;
    

    (MethodExpressionActionListener实现了这个接口)

    【讨论】:

    • 所以你的意思是我创建了一个类,说 CheckList 实现了 ActionListener。它里面会有 prcoessAction 方法。现在我应该在 processAction 方法中写什么。我的意思是当 ActionListener 被触发时,整个业务功能都写在我的 bean 中的 actionListener 方法下。所以我应该把这个留空。??? ..下一个问题...link.addActionListener(new CheckList()) 是正确的还是需要其他修改????
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 2016-05-02
    • 2012-02-12
    • 1970-01-01
    相关资源
    最近更新 更多