Поддержка атрибутов f: param или f: для автозаполнения простых лиц? - PullRequest
5 голосов
/ 04 июля 2011

Я читал, что основные компоненты JSF поддерживают тег f: param и f: attribute , чтобы передавать некоторые значения на сервер для входящих в него компонентов пользовательского интерфейса.

Мне необходимо сделать это для компонента автозаполнения простых лиц, так что метод автозаполнения сможет использовать параметр, предоставленный f: param или f: атрибут . Я попытался найти способы сделать это, и обнаружил, что полный параметр метода фиксирован и не может принимать больше аргументов, поэтому я думаю об использовании f: param или f: attribute .

Я использую версию 2.2.x, и, основываясь на моем эксперименте, я не могу получить f: param или f: атрибут , работающий

<p:autocomplete ...>
   <f:param name="myParam" value="xxxx" />
</p:autocomplete>

Будут ли Primefaces поддерживать эту функцию в компоненте автозаполнения? Могу ли я узнать, какие теги поддерживают параметры, а какие нет?

Спасибо!

1 Ответ

14 голосов
/ 11 августа 2011

Наконец-то все заработало!

Вот часть jsf:

<p:autoComplete id="#{cc.attrs.id}" label="#{cc.attrs.label}"
    ....
    completeMethod="#{filterableRaceAutocompleteBean.filterRace}">

    <f:attribute name="filter" value="#{cc.attrs.filter}" />

</p:autoComplete>

А вот и источник:

public List<Dto> filterRace(String filterString) {
    String filterValue = (String) UIComponent.getCurrentComponent(FacesContext.getCurrentInstance()).getAttributes().get("filter");
    log.debug("filter string : " + filterString + ", with query filter of : " + filterValue);

    ....

    return result;
}
...