この目的のために組み込みのタグがあります。
ユーザーがテキストボックスに文字を入力すると、入力した文字で始まる文字列がリスト形式で表示されます。リストから選択されたアイテムは、テキストボックスに取り込まれます。
PS: 使用可能な例とデモでは、入力された文字を含む文字列が表示されます。しかし、入力した文字で始まる文字列のみを表示したいのです。
この目的のために組み込みのタグがあります。
ユーザーがテキストボックスに文字を入力すると、入力した文字で始まる文字列がリスト形式で表示されます。リストから選択されたアイテムは、テキストボックスに取り込まれます。
PS: 使用可能な例とデモでは、入力された文字を含む文字列が表示されます。しかし、入力した文字で始まる文字列のみを表示したいのです。
これを行う方法は、プラグインのwikiページに示されています。JSON結果を処理するオートコンプリート。そのコードをjspに設定するだけで、アクションに次のようなものを実装できます。
private static String[] staticLanguages = { ...a list... };
private String term;
private String[] languages = Autocompleter.staticLanguages;
public String execute() throws Exception {
if (term != null && term.length() > 1)
{
ArrayList<String> tmp = new ArrayList<String>();
for (int i = 0; i < staticLanguages.length; i++)
{
if (StringUtils.contains(staticLanguages[i].toLowerCase(), term.toLowerCase()))
{
tmp.add(staticLanguages[i]);
}
}
languages = tmp.toArray(new String[tmp.size()]);
}
return SUCCESS;
}
StringUtils.contains行を変更し、代わりに先頭が同じかどうかを確認してください。
jspタグは次のようになります。
<sj:autocompleter
name="term"
id="languages"
href="%{remoteurl}"
delay="50"
loadMinimumCount="2"
/>
これでうまくいくと思います。wikiのサンプルコードを見て、試してみてください。
Oracleからデータを読み取り、提案リストを表示するStruts2とJqueryを使用して、オートコンプリート用の独自のユーティリティを作成しました。要件に応じて変更できます。ここからコードをダウンロードしてくださいhttp://javaant.com/dynamic-autocomplete-using-jquery-struts2-and-oracle/#.V0RxL5N96Hs