我正在尝试使用属性selectListener
从自动完成中收听select
事件。我正在传递一个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>
我所要做的就是,在用户从自动完成的建议中选择一个特定的建议项后导航到另一个页面。
看一下PrimeFaces 3.5版本,似乎selectListener
属性不再适用于AutoComplete组件。BalusC回答中的链接指向正确的位置,在那里它显示了在<p:autocomplete>
:
<p:ajax>
标记的新方法:<p:autoComplete id="acSimple" value="#{autoCompleteBean.txt1}" completeMethod="#{autoCompleteBean.complete}">
<p:ajax event="itemSelect" listener="#{autoCompleteBean.handleSelect}" update="messages" />
</p:autoComplete>
selectListener
属性应该指向一个接受SelectEvent
并返回void
的托管bean方法,而不是指向某个任意的JavaScript函数。
参见PrimeFaces <p:autoComplete>
展示页面。
<p:autoComplete selectListener="#{autoCompleteBean.handleSelect}" ... />
public void handleSelect(SelectEvent event) {
// ...
}