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

时间:2011-07-09 14:03:44

标签: 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>

我要做的就是,在用户选择自动填充建议中的特定建议项目后,导航到其他页面。

2 个答案:

答案 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) {  
    // ... 
}