JSP
<div id="description"></div>
...
<a href="#" class="contentLink"/>${emp.ename}</a></td>
...
<ajax:htmlContent
baseUrl="HtmlContent_post.jsp"
sourceClass="contentLink"
target="description"
parameters="ename={ajaxParameter}"
/>
この例では、指定した「スタイルシートクラス名」に対して、イベント設定しています。
contentLinkという「スタイルシートクラス名」を指定したタグについて、htmlContentタグの動作が設定されます。
Ajax通信するURLは、HtmlContent_post.jspです。パラメータは、email=???という形でリクエストされます。
???の部分は、予約語「ajaxParameter」を使っているので、タグ内のコンテンツ、つまりはenameが送られます。
(本来であれば、empnoを送りたいのですが、やり方不明)
Ajaxで呼び出されるJSP
<%
//リクエストされた社員の詳細情報を取得
QueryRunner runner = new QueryRunner((DataSource)request.getAttribute("datasource"));
MapHandler handler = new MapHandler();
request.setAttribute("emp",
runner.query(
"SELECT * FROM emp WHERE ename = ?",
request.getParameter("ename"), handler));
%>
...
<tr>
<th>EMPNO:</th>
<td>${emp.empno }</td>
</tr>
<tr>
<th>ENAME:</th>
<td>${emp.ename }</td>
</tr>
...
enameがパラメータとして呼び出されるので、それを条件にDB検索をしています。
DBアクセスの部分は、ajax:htmlContentの内容とは関係ないです。
サンプルプログラム(ソースつき)
データはHSQLDBから検索しています。インプロセスで動作するWebアプリケーションとして作成したので、webappsフォルダに放り込めば、すぐに動作確認できます。
https://app.box.com/shared/3a20khbepu
http://localhost:8080/AjaxTagLibStudy/のようにアクセスすれば、各サンプルが実行できます。