我遇到了麻烦,因为我在 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");