Adición de atributos personalizados al componente autocompletado de Primefaces en JSF
Pregunté acerca de pasar a través de atributos en unapregunta diferente y encontré que podía crear un renderizador personalizado para el<p:autocomplete>
pero el problema es que mi renderizador personalizado se usaría para cada p: autocompletar en mi proyecto (en todo el sitio). Por lo tanto, he elegido crear un componente personalizado que se extiendeorg.primefaces.component.autocomplete.AutoComplete
y agrega los atributos necesarios al cuadro de texto.
Mi idea inicial fue agregar un constructor, pero no parece funcionar porque el mapa de atributos es nulo en este punto:
<code>@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"); } } </code>
Mi otro pensamiento fue dejar este componente personalizado vacío (clase vacía) y luego especificar un renderizador personalizado que se extiendaorg.primefaces.component.autocomplete.AutoCompleteRenderer
y modificar los atributos allí.
Después de todo lo dicho y hecho, solo necesito una forma de mantener estos atributos separados en este cuadro de texto, por lo que simplemente poner un renderizador personalizado en la p: autocompletar no funcionará (a menos que tal vez pueda usar el atributo renderType = para este) p: autocompletar?).