JSF ValueChangeListener in editable p:SelectOneMenu

Fant

Bekanntes Mitglied
Hallo zusammen!

Ich hoffe, dass meine Frage hier richtig aufgeben ist... Ich habe in meiner Webanwendung ein SeelctOneMenu, welches zusätzlich die Möglichkeit bieten soll einen individuellen Text eingeben zu können:

HTML:
<p:selectOneMenu id="somID" editable="true" value="#bean.myAttribute}">

     <f:selectItem itemLabel="Select One" itemValue="" />
     <f:selectItem   .....
                           .....                                             />
     <p:ajax event="change" update="somID" listener="#bean.myListener}"/>
                               
</p:selectOneMenu>

Der Listener wird aber nur aufgerufen, wenn ich einen Punkt aus dem SelectMenu auswähle und nicht, wenn ich das Textfeld frei beschreibe.

Bei einem normalen InputText-Element funktioniert es wie gewünscht:
HTML:
<p:inputText value="#{bean.myAttribute}">
     <p:ajax event="change" listener="#{bean.myListener}"/>
</p:inputText>

Wenn ich im SelectOneMenu beispielsweise
HTML:
<p:ajax event="keyup" update="somID" listener="#bean.myListener}"/>
ergänze, so wird dies einfach ignoriert.

Weiß einer Rat, wie ich dafür sorgen kann, dass auch eine manuelle Eingabe im SelectOneMenu den Listener ansteuert?


Gruß Fant

[EDIT]
Fall das wichtig ist: Ich benutze Primefaces 3.1 JSF 2.0 Mojarra 2.1.3
[/EDIT]
 
Zuletzt bearbeitet:

JimPanse

Bekanntes Mitglied
Das eine ist eine 'AjaxBehavior' listener und du brauchst einen ValueChangeListener der auf das Event reagiert:

Java:
<p:selectOneMenu value="#{bean.attribute} valueChangeListener="#{bean.valueChanged}">
<f:selectedItems value="#{bean.attributes}"/>
<P:ajax execute="@this" render="something"/>
</p:selectOneMenu>

...


public class Bean{
...

public void valueChanged(ValueChangeEvent arg0){
System.out.println("  new: "+arg0.getNewValue()+" old: "+arg0.getOldValue());
}

}

Wichtig: Falls du irgendwo ein required="true" Pflichtfeld in der Form hast, musst du das selectOneMenue mit immediate="true" ausführen.

Grüße
 

Fant

Bekanntes Mitglied
Danke für deine Antwort, aber auch mit deiner Lösung bleibt das Problem das gleiche:
Wenn ich einen vorgegebenen Menüpunkt auswähle, dann wird der Listener aufgerufen, aber wenn ich das Textfeld frei beschreibe, dann tut sich nix...

Ich hab es sowohl mit
HTML:
<p:ajax process="@this" update="myId"/>
als auch mit
HTML:
<f:ajax execute="@this" render="myId"/>
probiert.

Gruß Fant


[WR]
Ich fürchte, dass das, was ich möchte, ganz einfach noch nicht klappt. Vergleiche hier:
Issue 3504 - primefaces - Add onblur event to selectOneMenu - Next Generation Component Suite - Google Project Hosting
und hier
PrimeFaces Forum &bull; View topic - keyup event for <p:selectOneMenu>
[/WR]
 
Zuletzt bearbeitet:

Fant

Bekanntes Mitglied
Sorry für den Doppelpost, aber ich kann meinen letzten Beitrag nicht mehr editieren.

Falls es jemanden geben sollte, den das Problem interessiert:
Ich habe im primefaces-Forum ein Thema zu meiner Frage eröffnet, welches hier zu finden ist.

Gruß Fant
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C selectOneMenu mit valueChangeListener im <p:dialog Web Tier 2
F JSF Frage zu valueChangeListener Web Tier 1
G JSF Radio Button ValueChangeListener Wert wird nicht übernommen Web Tier 2
D icefaces, checkbox valuechangelistener Web Tier 2
P JSF (Primefaces) SelectOneMenu Value auf Array wird nicht gesetzt Web Tier 0
F JSF h:selectOneMenu Wert vorbelegen klappt nicht? Web Tier 2
M Converter für SelectOneMenu Web Tier 3
Phash JSF - SelectOneMenu Property anzeigen Web Tier 3
F JSF p:selectOneMenu Session Web Tier 10
S JSF SelectOneMenu - Probleme mit AJAX Web Tier 6
F PrimeFaces - selectOneMenu Web Tier 2
F PrimeFaces p:selectOneMenu funktioniert nicht Web Tier 12
H JSF Textarea nur einblenden, bei bestimmter Auswahl in SelectOneMenu Web Tier 6
H JSF SelectOneMenu und der Converter Web Tier 3
NoXiD JSF h:selectOneMenu - änderungen nicht übernommen Web Tier 14
P SelectOneMenu liest Daten nicht ein Web Tier 7
J JSF 2.0 h:selectOneMenu mit enums Web Tier 4
J h:selectOneMenu und Page-Refresh Web Tier 3
M selectOneMenu Web Tier 4
I selectOneMenu - Problem Web Tier 6
M SelectoneMenu Default Wert Web Tier 4
ModellbahnerTT JSF selectOneMenu Web Tier 15
J Datenübergabe aus selectOneMenu Web Tier 2
F Unterschied h:selectOneMenu zu rich:comboBox Web Tier 4
E Wert aus JSF-Selectonemenu in Textfeld schreiben Web Tier 4
A JSF SelectOneMenu mit Werten aus Bean vorbelegen Web Tier 2
M SelectOneMenu mit Inhalt aus DB Web Tier 2

Ähnliche Java Themen

Neue Themen


Oben