ajax:htmlContent(サンプル)

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フォルダに放り込めば、すぐに動作確認できます。


http://localhost:8080/AjaxTagLibStudy/のようにアクセスすれば、各サンプルが実行できます。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)