从自动完成(Primefaces)组件中侦听onSelect事件

Raj*_*pta 3 jsf 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>
Run Code Online (Sandbox Code Playgroud)

我想要做的就是,在用户选择自动完成提出的建议中的特定建议项目之后,导航到不同的页面.

Dav*_*gan 9

查看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>
Run Code Online (Sandbox Code Playgroud)


Bal*_*usC 6

selectListener属性应该引用托管bean方法获取SelectEvent和返回void,而不是某些任意JavaScript函数.

另请参见PrimeFaces <p:autoComplete>展示页面.

<p:autoComplete selectListener="#{autoCompleteBean.handleSelect}" ... />  
Run Code Online (Sandbox Code Playgroud)

public void handleSelect(SelectEvent event) {  
    // ... 
}
Run Code Online (Sandbox Code Playgroud)