Прослушивание событий onSelect из компонента Autocomplete (Primefaces)

Я пытаюсь прослушать событие select из автозаполнения, используя атрибут selectListener. Я передаю remoteCommand в качестве слушателя выбора. Но selectListener никогда не вызывает этот метод remoteCommand.

Мой код следует:

<h:form>
    <p:autoComplete autocomplete="true" completeMethod="#{search.fetchSuggestions}" value="#{search.selectedSuggestion}" selectListener="moveToSelectedPage()"/>

    <p:remoteCommand name="moveToSelectedPage" action="firstPage.xhtml?faces-redirect=true" />
</h:form>

Все, что я пытаюсь сделать, это перейти на другую страницу после того, как пользователь выберет конкретный предлагаемый элемент среди предложений, сделанных автозаполнением.


person Rajat Gupta    schedule 09.07.2011    source источник


Ответы (2)


Атрибут selectListener должен относиться к методу управляемого компонента, который принимает SelectEvent и возвращает void, а не к какой-то произвольной функции JavaScript.

См. также страницу демонстрации PrimeFaces <p:autoComplete>.

<p:autoComplete selectListener="#{autoCompleteBean.handleSelect}" ... />  

с участием

public void handleSelect(SelectEvent event) {  
    // ... 
}
person BalusC    schedule 11.07.2011

Глядя на PrimeFaces версии 3.5, кажется, что атрибут selectListener больше не доступен для компонента AutoComplete. Ссылка в ответе BalusC ведет к правильному месту, где она показывает новый подход к включению тега <p:ajax> внутри <p:autocomplete>:

<p:autoComplete id="acSimple" value="#{autoCompleteBean.txt1}" completeMethod="#{autoCompleteBean.complete}">  
  <p:ajax event="itemSelect" listener="#{autoCompleteBean.handleSelect}" update="messages" />  
</p:autoComplete>
person Dave Mulligan    schedule 12.03.2013