2016-04-28 12 views
1

Ich habe Probleme, weil ich eine Methode in Java habe, ich brauche die Funktion, um 2 Werte, String und ItemSelectEvent, weil ich die gleiche Funktion mehrmals verwenden.Ajax ItemSelectEvent Null bei Verwendung mehrerer Parameter im Listener

Wie kann ich das Ereignis vom XHTML senden?

Hier ist, wie ich versuchte, es zu tun:

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

Die Bean-Methode:

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

Aber die Methode immer das „Ereignis“ als null empfängt, empfängt nur das Ereignis, wenn ich es nennen wie diese

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

Bean

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

Aber ich brauche es

+0

es auf eine andere Art von Komponente nicht scheitern? Scheitert es in jsf an (h: component und f: ajax)? – Kukeltje

+0

Ist diese Lösung akzeptabel: http://stackoverflow.com/questions/4782430/how-to-pass-additional-parameters-in-ajax-request-on-change-value-in-hselectone – Kukeltje

+0

Dies ist, was es wann sendet Ich versuche, alles zu senden createModel (java.lang.String, null) Wie kann ich das Ereignis senden, habe ich versucht, org.primefaces.event.ItemSelectEvent, Ereignis, ItemSelectEvent und alles sendet null, außer wenn ich nichts sende, aber ich müssen die Zeichenfolge mit dem Ereignis senden –

Antwort

0

Hier ist der zusätzlichen String, danke im voraus zu schicken, wie ich das Problem gelöst, statt

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

I

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

und auf der Bean Ich habe es ein Attribut anstelle eines Parameters gemacht

----------------- Bearbeiten ------- ------------

Also ich hatte Probleme mit dem Zeitpunkt der Ausführung und was ich am Ende war es, ein Verfahren wie folgt aufrufen tun:

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

und das Verfahren war

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

wie diese erklärt und machte eine Methode für jede Option I

0

Versuchen Sie, setzen Sie die Zeichenfolge Attribut in einer f nennen wollte: Attribut innen p: Chart und fangen sie dann in Ihrem Backing Bean-Methode:

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