我有一个客户表,我正在尝试使用自动填充功能进行搜索。问题是即使只有大约3000个客户,自动完成搜索建议框大约需要2-3秒才能显示。 我考虑创建一个包含所有客户的var,这些客户将在页面加载时创建,当有人搜索客户时,搜索将仅在客户端进行。 我不知道如何在RichFaces中做到这一点。请帮忙。
到目前为止(从服务器搜索速度慢) - customerSuggestBox.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:a="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:s="http://jboss.com/products/seam/taglib">
<ui:composition>
<ui:define name="forItem">customerText</ui:define>
<rich:suggestionbox for="${forItem}" tokens=",["
suggestionAction="#{customerUtilAction.getCustomersByName}" var="cus"
selfRendered="true"
ignoreDupResponses="true"
fetchValue="#{cus.businessUnit.name}"
first="0"
minChars="2"
shadowOpacity="5"
border="1" width="400"
height="250"
onselect="setCaretToEnd(event);"
reRender="#{reRender}"
shadowDepth="1"
cellpadding="5" cellspacing="1" nothingLabel="No customers found" columnClasses="center">
<h:column>
<h:outputText value="#{cus.businessUnit.name}" />
</h:column>
<h:column>
<h:outputText value="#{messages[cus.businessRelationship.name()]}" />
</h:column>
<ui:insert name="reRender"></ui:insert>
</rich:suggestionbox>
</ui:composition>
</html>
忘了说: 另一个xhtml包含这个并发送参数“forItem”
<ui:include src="customerSuggestBox.xhtml">
<ui:param
name="forItem"
value="customerText" />
</ui:include>