我們使用Primefaces 2.2.1。 我們使用自動完成來顯示數據庫中的名稱。其中一些名稱的'&'作爲它的一部分。例如:Jack & Jill。Primefaces自動完成未通過並完成方法
當我們在自動完成中輸入&時,建議停止在'&'之前的字符處。
姓名:Jack & Jill,Jackie,Jack & Bill,Jack & Jen。
當輸入「Jack」時,我們會在建議列表中獲得所有上述名稱。 而當我們輸入「傑克&」,我們仍然會得到相同的列表,而不是縮小到 「傑克&吉爾」,「傑克&比爾」,「傑克&仁」
當我們調試正在傳遞什麼到完整的方法,我們只注意到'&'通過之前的字符。例如:'傑克'。
「&」之後鍵入的任何內容,包括「&」本身未被傳遞給完整的方法。我們從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">
在此先感謝。
我認爲你應該發佈自動完成bean代碼,以提高你的問題的可見性。 – Akheloes
這是bean代碼。 (「Jack&Jill」,「Jackie」,「Jack&Bill」,「Jack&Jen」);以及其他名稱。 列表 suggestedNames = new ArrayList (); (name.toLowerCase()。trim()。startsWith(nameQuery.toLowerCase()。trim())){ suggestedNames.add(name。 for(String name:names){ iftoUpperCase()); } } return suggestedNames; } –
user2498630
XHTML代碼
– user2498630