Adicionando Atributos Personalizados ao Componente de AutoCompletar Primefaces no JSF
Eu perguntei sobre passar atributos em umpergunta diferente e descobri que eu poderia criar um renderizador personalizado para o<p:autocomplete>
componente, mas o problema é meu renderizador personalizado seria usado para cada p: autocomplete no meu projeto (todo o site). Por isso, escolhi criar um componente personalizado que se estendeorg.primefaces.component.autocomplete.AutoComplete
e adiciona os atributos necessários à caixa de texto.
Meu pensamento inicial foi adicionar um construtor, mas parece não funcionar porque o mapa de atributos é nulo neste momento:
<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>
Meu outro pensamento foi deixar este componente personalizado vazio (classe vazia) e, em seguida, especificar um renderizador personalizado que se estendeorg.primefaces.component.autocomplete.AutoCompleteRenderer
e modifique os atributos lá.
Depois de tudo dito e feito, eu só preciso de uma maneira de manter esses atributos separados para essa caixa de texto, então apenas colocar um renderizador customizado no p: autoComplete não vai funcionar (a menos que eu possa usar renderType = attribute para este p: autoComplete?).