Primefaces 2.2.1 を使用しています。オートコンプリートを使用して、データベースから名前を表示しています。一部の名前には「&」が含まれています。例:ジャック&ジル。
オートコンプリートに & を入力すると、候補は「&」の直前の文字で停止します。
名前:ジャックとジル、ジャッキー、ジャックとビル、ジャックとジェン。
「Jack」と入力すると、候補リストに上記の名前がすべて表示されます。一方、「Jack &」と入力すると、同じリストが表示され、「Jack & Jill」、「Jack & Bill」、「Jack & Jen」に絞り込まれません。
完全なメソッドに渡されるものをデバッグすると、'&' が渡される前の文字だけに気付きました。例: 「ジャック」。
「&」自体を含む「&」の後に入力されたものはすべて、完全なメソッドに渡されません。Primefaces フォーラムの 1 つからコンバーターを使用することがわかりましたが、まだ役に立ちません。これは早急に解決すべき非常に重要な問題であるため、早急にアドバイスをお願いします。
これがビーンコードです。
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">
前もって感謝します。