Добавление пользовательских атрибутов в компонент автозаполнения Primefaces в JSF
Я спросил о прохождении через атрибуты вдругой вопрос и обнаружил, что я мог бы создать собственный рендер для<p:autocomplete>
компонент, но проблема в том, что мой пользовательский рендерер будет использоваться для каждого p: autocomplete в моем проекте (для всего сайта). Поэтому я решил создать пользовательский компонент, который расширяетorg.primefaces.component.autocomplete.AutoComplete
и добавляет необходимые атрибуты в текстовое поле.
Сначала я хотел добавить конструктор, но он, похоже, не работает, поскольку карта атрибутов на этом этапе пуста:
<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>
Моя другая мысль состояла в том, чтобы оставить этот пользовательский компонент пустым (пустой класс), а затем указать пользовательский рендер, который расширяетorg.primefaces.component.autocomplete.AutoCompleteRenderer
и измените атрибуты там.
После того, как все сказано и сделано, мне просто нужен способ сохранить эти атрибуты отдельно от этого одного текстового поля, так что простое размещение пользовательского средства визуализации в p: autoComplete не будет работать (если, возможно, я не смогу использовать для этого атрибут renderType = р: автозаполнение?).