如何使用自定义组件中的事件调用方法

时间:2017-07-20 11:31:50

标签: jsf-2.2 custom-component

我有我的组件:

public class Training extends UIOutput

并拥有渲染器:

public class TrainingRenderer extends Renderer

with taglibrary:

  <tag>
    <tag-name>training</tag-name>
    <attribute>
        <name>style</name>
    </attribute>
    <attribute>
        <name>action</name>
        <method-signature>java.lang.String action()</method-signature>
    </attribute>
    <attribute>
        <name>listener</name>
        <method-signature>void actionListener(javax.faces.event.ActionListener)</method-signature>
    </attribute>
    <component>
        <component-type>training</component-type>
        <renderer-type>pl.spiid.app.spiidcharts.beans.training.Training</renderer-type>
    </component>
</tag>

这是在我的index.xhtml

<spiid:training rendered="true" style="width: 100%; height: 500px;" action="#{training.actionFromChart()}" listener="#{userBeanData.bindingMessage(arg1)}/>

和听力方法

 public void bindingMessage(ActionEvent actionEvent) {...}

方法可以通过以下方式调用:

    Map<String, Object> attrMap = component.getAttributes();
    Object tmp = attrMap.get("listener");

我想用事件参数调用此方法。我想使用eventQueue,但我不知道如何正确使用它。

使用: JSF 2.2.14

编辑。

EDIT2: 很快我会添加一个答案。

0 个答案:

没有答案