Hinzufügen von Benutzerdefinierten Attributen Primefaces Autocomplete-Komponente in JSF

Fragte ich über pass-through-Attribute in einem andere Frage und fand, ich könnte eine custom-renderer für die <p:autocomplete> Komponente, aber das problem ist, mein custom renderer verwendet werden würde, für jedes p:autocomplete in meinem Projekt (site-wide). Daher habe ich gewählt, um eine benutzerdefinierte Komponente erstellen, die erweitert org.primefaces.component.autocomplete.AutoComplete und fügt die erforderlichen Attribute für das Textfeld.

Mein Erster Gedanke war, fügen Sie einen Konstruktor, aber es scheint nicht zu funktionieren, da das Attribut anzeigen, null ist an dieser Stelle:

@FacesComponent("com.mycomponents.SiteSearch")
public class SiteSearch extends AutoComplete {

    public SiteSearch() {
        Map<String,Object> attrs = getAttributes();
        attrs.put("x-webkit-speech", null); 
        attrs.put("x-webkit-grammer", "builtin:search");
        attrs.put("onwebkitspeechchange", "this.form.submit();");
        attrs.put("placeholder", "Enter a Search Term");
    }   
}

Meine andere gedacht war, lassen Sie diese benutzerdefinierte Komponente leer ist (leere Klasse) und geben Sie eine benutzerdefinierte renderer, erweitert org.primefaces.component.autocomplete.AutoCompleteRenderer und ändern Sie die Attribute vorhanden.

Nachdem alles gesagt und getan, ich muss nur einen Weg, um diese Attribute zu trennen, um diesem ein Textfeld, so nur darum, einem custom-renderer auf der p:autoComplete ist nicht zur Arbeit zu gehen (es sei denn, vielleicht kann ich renderType= Attribut für dieses p:autoComplete?).

  • irgendwelche Ideen?
  • War gerade Serien (House MD jetzt). Haben Sie ein wenig Geduld 🙂
  • Haha. Keine Probleme. Ich denke, wenn ich sehe, wie eine JSF-Frage, die ich einfach automatisch davon aus, dass dein ist die Antwort, ohne auch nur einen Blick. Kann mir jemand sagen, JSF ninja?
InformationsquelleAutor Adam | 2012-05-13
Schreibe einen Kommentar