Ajax ItemSelectEvent null 在侦听器中使用多个参数时



我遇到了麻烦,因为我在 Java 中有一个方法,我需要函数来接收 2 个值,字符串和 ItemSelectEvent,因为我多次使用相同的函数。

如何从 XHTML 发送事件?

这是我尝试这样做的方法:

<p:chart type="donut" model="#{bean.donut}">
    <p:ajax event="itemSelect" listener="#{bean.createModel("P", event)}" 
         update="grap"/>
</p:chart>

豆法:

public void createModel(String str, ItemSelectEvent event){
...
}

但是该方法总是将"事件"作为null接收,只有在我这样调用它时才接收事件

<p:chart type="donut" model="#{bean.donut}">
    <p:ajax event="itemSelect" listener="#{bean.createModel}" 
         update="grap"/>
</p:chart>

public void createModel(ItemSelectEvent event){
...
}

但是我需要它来发送额外的字符串,提前感谢

这是我解决问题的方法,而不是

<p:chart type="donut" model="#{bean.donut}">
    <p:ajax event="itemSelect" listener="#{bean.createModel("P", event)}" 
         update="grap"/>
</p:chart>

我做了

<p:chart type="donut" model="#{bean.donut}">
    <p:ajax event="itemSelect" listener="#{bean.createModel}" onStart="bean.str('T')" 
         update="grap"/>
</p:chart>

在 bean 上,我将其设置为属性而不是参数

-----------------编辑-------------------

所以我在执行时间方面遇到了问题,我最终做的是调用这样的方法:

<p:ajax ... listener="#{bean.method}"/>

该方法是这样声明的

method(itemSelectEvent e){
     method2("P", e);
}
method2(String option, itemSelectEvent e){
     ...
}

并为我想调用的每个选项制作了一个方法

尝试将字符串属性放在 p:chart 中的 f:attribute 中,然后在您的后备 Bean 方法中捕获它:

event.getComponent().getAttributes.get("attributeName");

相关内容

  • 没有找到相关文章

最新更新