我正在尝试使用属性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>
我要做的就是,在用户选择自动填充建议中的特定建议项目后,导航到其他页面。
答案 0 :(得分:8)
查看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>
答案 1 :(得分:6)
selectListener
属性应引用托管bean方法,该方法采用SelectEvent
并返回void
,而不是某些任意JavaScript函数。
另请参阅PrimeFaces <p:autoComplete>
showcase page。
<p:autoComplete selectListener="#{autoCompleteBean.handleSelect}" ... />
与
public void handleSelect(SelectEvent event) {
// ...
}