我正在使用PrimeFaces 3.5。我有一个自动完成,我想搜索加载20行,当用户scrols到底部加载更多的10个结果(如果有的话)。这是我的自动填充功能:
<p:autoComplete rendered="#{autoCompleter.hasCompletions}" widgetVar="${id}"
id="${id}" style="position: relative"
value="#{autoCompleter.value}"
completeMethod="#{autoCompleter.suggest}"
var="s"
itemLabel="#{s.name}"
itemValue="#{s}"
converter="#{autoCompleter.converter}"
forceSelection="true"
queryDelay="500"
scrollHeight="400"
required="#{required}"
requiredMessage="#{msgs['label.address.autocompleter.required']}"
styleClass="#{required ? 'ui-input-required' : ''}"
maxResults="#{autoCompleter.maxResult}">
<p:ajax event="change"
partialSubmit="true"
update="#{update}"
onstart="if(${id}.panel.is(':visible')) return false;"/>
<p:ajax event="itemSelect"
partialSubmit="true"
update="#{update}"/>
<p:ajax event="blur"
partialSubmit="true"
update="#{update}"
disabled="true"/>
<ui:insert name="menu">
<p:column>#{s.name}</p:column>
</ui:insert>
</p:autoComplete>
我已经添加了这个javascript来加载下一个结果块:
<p:remoteCommand name="loadNextSettlementsChunk"
action="#{autoCompleter.suggest}"
update="${id}"
partialSubmit="true"
immediate="true"/>
<script type="text/javascript">
jQuery(function($) {
$('.ui-autocomplete-panel').bind('scroll', function() {
if($(this).scrollTop() + $(this).height() >= $(this)[0].scrollHeight) {
loadNextSettlementsChunk();
}
});
});
</script>
但是我没有加载下一个结果,而是收到警告信息:
无法找到与from-view-id匹配的导航案例 '/policies/index.xhtml'用于行动'#{autoCompleter.suggest}' 结果'[Văleni(Viişoara),Viişoara,Viişoara(Todireşti),Viişoara (Vaslui),Viişoara,Viişoara,Viişoara,Viişoara,Viişoara,Viişoara, Viişoara-Moşneni,Viişoara,ViişoaraMică,Viişoara(Păuneşti), Viişoara(Vidra),Viişoara,Viişoara,Viişoara,Viişoara,Viişoara (ŞtefancelMare),Viişoara(TârguTrotuş),Viişoara,Viişoara, Viilor,Valea Viilor,Dealu Viilor,Dealu Viilor(Moşoaia),Dealu Viilor(Poiana Lacului)]'和[]括号是我的结果。怎么样 修复这个问题才能正常工作?
答案 0 :(得分:0)
action
属性必须指向一个方法,该方法调用某些业务逻辑并返回 void 或 String ,但方法的结果为{{ 1}}是 ArrayList 。因此,我建议您使用suggest
代替actionListener
,以便在没有导航页面的情况下调用您的业务逻辑。
action