リファレンストップへ Java | EL式【function(関数)の作成】使用した環境 JDK 6 Update 11 Tomcat 6.0.18 独自のfunction(関数)を作成して使用するサンプルです。EL式では、独自の関数を作成して使用する事が可能となっています。 このサンプルではEL式でsubstring(指定範囲の文字列抜き出し)を行う関数を作成してみます。 まず、任意のクラスに public static なメソッドを作成します。 package sample; 戻り値や引数は自由に設定する事ができます。public class ELFunctions { /** * substringを行うEL関数 * @param o * @param beginIndex * @param endIndex * @return */ public static String substring(String str, int beginIndex, int endIndex) { if (str == null) { return ""; } return str.substring(beginIndex, endIndex); } } 次に、TLDファイルを作成します。WEB-INF以下に作成します。 WEB-INF/sample.tld <?xml version="1.0" encoding="UTF-8"?> <taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xml="http://www.w3.org/XML/1998/namespace" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" version="2.1"> <tlib-version>1.0</tlib-version> <uri>/sample</uri> <function> <name>substring</name> <function-class>sample.ELFunctions</function-class> <function-signature> java.lang.String substring(java.lang.String, int, int) </function-signature> </function> </taglib> <uri>xxx</uri>で、このtldファイルのuriを指定します。この値は任意です。JSPで使用する際に指定します。 関数に関する情報は<function>タグを記述し、作成した関数に関する情報を記述します。 それぞれのタグの意味は以下のようになります。
tldファイルの詳細な情報についてはtldファイルを参照してください。 以上で自作した関数が使用可能となります。 JSPでは以下のようにして作成した関数を使用する事ができます。 taglibディレクティブのuri属性でtldファイル内の<uri>で記述した値を指定します。 <%@ page contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %> <%@ taglib prefix="sample" uri="/sample" %> <% pageContext.setAttribute("aaa", "ABCDEFG"); %> ${sample:substring(aaa, 3, 5)} このJSPを実行すると以下のような結果出力となります。 DE tldファイルのuri指定方法は上記サンプルで行った方法以外にも幾つかあります。 詳しくはtaglibディレクティブを参照してください。 |
|