Autocomplete statt Drop Down

x22

Bekanntes Mitglied
Sers Leute, ich habe gerade ein Feld Geburtsort mit einer Drop down list, in der alle Orte angezeigt werden, die ich in einer Liste gespeichert habe.

Das funktioniert auch.. allerdings mit sehr langen Ladezeiten! (Verständlich bei über 8k Orten in der Liste).
Nun wollte ich das so handeln, dass ich statt der Drop Down List:

HTML:
<p:selectOneMenu value="#{cc.attrs.person.geburtsOrt}" id="selectGeburtsOrt"
		label="#{msgs.gebort}" editable="true" filter="true" filterMatchMode="startsWith" >
			<f:selectItem itemLabel="" itemValue="" noSelectionOption="true" />
			<f:selectItems value="#{cc.attrs.orte}" var="o" itemValue="#{o}" itemLabel="#{o}"/>
		</p:selectOneMenu>


eine autocomplete Methode nehme.
Beispiel: man gibt St ein und es werden nur die Orte mit S geladen..
Ich benutze hierbei Primefaces, komme jedoch nicht so Recht mit der AutoComplete Methode klar :

HTML:
<p:autoComplete id="selectGeburtsOrt" value="" completeMethod="#{cc.attrs.person.complete}"/>

Person sieht folgendermaßen aus:

Java:
public List<String> complete(String geburtsOrt){
		List<String> results= new ArrayList<String>();
		for(int i=0; i< 10; i++){
			results.add(geburtsOrt+1);
		}
		return results;
	}

Das ist nur ein "Pseudo Code", die Frage ist, wie stelle ich das nun mit der Liste an, die ich bei der Drop Down verwendet habe, und die auch funktioniert.

Best regards,
x22
 

x22

Bekanntes Mitglied
Ich Schreibe mal meinen Vorschlag als Ausgangspunkt:

Die Liste heisst Orte.tab.

Java:
public List<String> complete("Orte.tab"){
		List<String> results= new ArrayList<String>();
		for(int i=0; i< Orte.tab.length; i++){
			results.add(Orte.tab[i]);
		}
		return results;
	}

x22
 

jwiesmann

Bekanntes Mitglied
Warum benutzt du
Code:
cc.attrs.person...
?
Das benötigt man eigentlich nur für Composite Components. Darin eine Funktion aufzurufen ist nicht so wie in einer "normalen" JSF Page.

Probier es mal so: [XML]
<p:autoComplete id="selectGeburtsOrt" value="" completeMethod="#{cc.attrs.person['complete']}"/>
[/XML]
 

Ähnliche Java Themen

Neue Themen


Oben