最近、注目しているAjaxTagsというカスタムタグ。
Ajaxを実装する方法には、いろいろな選択肢が考えられます。(参考リンク:JavaでAjaxを使う時の考察)
その中でも、比較的、低レベルな実装でありながら、実用面も考慮したカスタムタグだと考えています。
実際に使ってみて解説したいと思います。
全カスタムタグで共通の属性
ajax:autocomplete
ajax:select
ajax:select(サンプル)
ajax:htmlContent
ajax:htmlContent(サンプル)
セットアップ
AjaxTagsは、同名のプロジェクト(以前の記事参照)があるので、http://ajaxtags.sourceforge.net/からダウンロードします。
2006/11/10時点で、最新のリリースバージョンは、1.1.5でした。1.2も魅力的な機能があったのですが、ベータ版だったので1.1.5を使用します。
AjaxTagsは、JavaScriptライブラリ「prototype.js」に依存しています。
こちらを別途ダウンロードする必要があります。AjaxTags1.1.5で使用しているprototype.jsは、現在では最新ではないのですが、 prototype-1.3.1.jsを使用しています。(1.4.0では動かなかった)
それらのファイルを、Webアプリケーションにコピーしておきましょう。私はこんな感じで配置しました。
${ajaxtags}/css | → | ${WebApp-Context}/css |
${ajaxtags}/images | → | ${WebApp-Context}/img |
${ajaxtags}/js/ajaxtags-1.1.5.jar | → | ${WebApp-Context}/js |
prototype-1.3.1.js | → | ${WebApp-Context}/js |
${ajaxtags}/lib/の一部 | → | ${WebApp-Context}/WEB-INF/lib |
${ajaxtags}/ajaxtags-1.1.5.jar | → | ${WebApp-Context}/WEB-INF/lib |
※${ajaxtags}/lib/内のjarファイルは、必要に応じて追加するものもあるので注意してください。
(struts.jarなどは、実際にStrutsを使うのであれば、それの最新版を入れたほうがよいです)
最低限コピーすべきは、commons-beanutils, commons-langのJARだと思います。(JSTLを使うページであれば、jstl.jarとstandard.jarも入れときましょう)
JSP2.0以前の場合は、TLDファイルをWEB-INFフォルダにコピーして、参照をweb.xmlに記述します。
<taglib>
<uri>http://ajaxtags.org/tags/ajax</uri>
<location>/WEB-INF/ajaxtags.tld</location>
</taglib>
(JSP2.0の場合は、JARを置くだけで参照してくれるので不要です。)
JSPの記述
タグライブラリの宣言が必要です。
<%@ taglib uri="http://ajaxtags.org/tags/ajax" prefix="ajax" %>
JavaScriptライブラリも参照します。
<script type="text/javascript" src="js/prototype-1.3.1.js"></script>
<script type="text/javascript" src="js/ajaxtags-1.1.5.js"></script>
スタイルシートは、サンプルが用意されているので、適当にリネームしてHTMLから参照します。
<link type="text/css" rel="stylesheet" href="css/ajaxtags.css" />
以上でセットアップは完了です。
これで、Ajax機能を有した様々なカスタムタグが使用できます。次回は全部のカスタムタグで共通な設定(属性)について説明します。