我们正在使用 Primefaces 2.2.1。我们正在使用自动完成来显示数据库中的名称。一些名字有'&'作为它的一部分。例如:杰克和吉尔。
当我们在自动完成中输入 & 时,建议会在 '&' 之前的字符处停止。
姓名:杰克和吉尔、杰基、杰克和比尔、杰克和珍。
当键入“Jack”时,我们会在建议列表中获得上述所有名称。而当我们输入“Jack &”时,我们仍然得到相同的列表,而不是缩小到“Jack & Jill”、“Jack & Bill”、“Jack & Jen”
当我们调试传递给完整方法的内容时,我们注意到只传递了 '&' 之前的字符。例如:“杰克”。
在 '&' 之后键入的任何内容,包括 '&' 本身都不会传递给完整的方法。我们从 Primefaces 论坛之一找到使用转换器,但仍然没有用。请尽快提出建议,因为这是一个需要尽快解决的非常关键的问题。
这是bean代码。
public List<String> complete(String nameQuery)
{
List<String> names = new ArrayList<String>(“Jack & Jill”, “Jackie”, “Jack & Bill”, “Jack & Jen”);
List<String> suggestedNames= new ArrayList<String>();
for (String name : names) {
if (name.toLowerCase().trim().startsWith(nameQuery.toLowerCase().trim()))
{
suggestedNames.add(name.toUpperCase());
}
}
return suggestedNames;
}
Xhtml代码
<p:autoComplete id="stName"
value="#{webBean.personVO.name}"
completeMethod="#{webBean.complete}"
selectListener="#{webBean.updateSelectedName}"
onSelectUpdate="name"
maxResults="10">
提前致谢。