EzServletでサジェスト機能!


今日は、本日はAjaxを利用したEzServletに「サジェスト機能」を追加しましたので簡単に説明したいと思います。
今回は、サジェスト機能とはどんなものなのか?そしてEzServletで利用方法について簡単に説明いたします。
詳細は別途記述しますので、まずはサジェスト機能について...
Googleれば一発で出てきますが、以下のような機能をサジェスト機能といいます。

サジェスト機能」とは?
サジェスト機能は、検索フォームに文字を入力していくと、 途中から文字の入力を補ったり、その言葉を含む関連検索語を表示する機能です。
検索したい単語を忘れた、綴りを忘れたなどの場合にはとても便利な機能です。
中略...
���������ȵ�ǽ

一番身近なサジェスト機能は「Google」検索ではないでしょうか?
検索文字(あ)を入力すると補完機能により、候補となる検索文字列が表示されます。

EzServletでは、この機能を開発者がAjaxを意識(JavaScriptやDHtml等を記述)することなく、実装することが出来ます。以下にEzServletを利用したSuggest機能を実装した画面を紹介します。

上記Suggest機能は「名称」に「いう」が含まれているユーザーをテーブルから検索し、先頭のn件を表示しています。
EzServletでは、開発者がHTMLに特殊なタグを埋め込むことなく、上記機能を実装することが可能です。


コードを書くのはサーバー側(Java)だけでよいのです。
上記機能を実装したサーバーのコードは以下の通りです。たった数行ですよ。。。

public void doSuggest(EzRequest req, EzResponse res, Hoge hoge) {
 // サジェスト要求か確認します。
 if(req.isSuggest()) {
  // サジェスト要求のあった入力項目の入力値を取得します。
  String value = req.getSuggestValue();
  // ユーザーテーブルより、入力値を含む名称を先頭10件取得します。
  _USER US = new _USER();
  List list = EzJDBC.selects(US.name).from(US)
             .where(US.name.like(value)).limit(10).find(User.class);
  // 取得したユーザー名称をSuggestとして設定します。
  for(User user : list) {
   req.suggest(user.name);
  }
 }
}

たったこれだけです。ちょーかんたんでしょ…(^^;)

上記例では利用していませんが、 req.getSuggestName()を呼び出せば、どの項目からのSuggest要求かを判別することが可能です。