Javaに関する様々な情報をご紹介します。

8Standard Taglibs:Functionsタグライブラリ

Javaに関する様々な情報をご紹介します。

Standard Taglibs:Functionsタグライブラリ

ここでは、Standard Taglibsで定義されている、Functionsタグライブラリについて解説します。Functionsタグライブラリでは、文字列の検索・置換・削除、文字列のカウント、XMLタグ記号の変換など主に表示処理に関連するタグが定義されています。

実行環境
  • ・WindowsXP Home Edition
  • ・J2SDK 1.4.2_04
  • ・Tomcat 5.0.18
  • ・Standard Taglib 1.1.0

Functionsタグライブラリの一覧

Functionsタグライブラリで定義されているタグを以下に記載します。

タグ 内容
fn:contains ある文字列の中に、指定された文字列が含まれるかを調べる。
fn:containsIgnoreCase ある文字列の中に、指定された文字列が含まれるかを調べる。調べる際、大文字小文字の違いは区別されない。
fn:endsWith ある文字列の最後に、指定された文字列が含まれるかを調べる。
fn:escapeXml XMLで解釈される文字記号(<、>、&、'、")を、HTMLで表示できる文字記号(<、>、&、'、")に置き換えて出力する。
fn:indexOf ある文字列の中で、指定された文字列がはじめて合致した際、合致した場所のindex番号を返す。
fn:join 配列内の要素を一連の文字列として出力する。
fn:length 配列、Collectionオブジェクトの要素数、文字列の文字数をカウントして、その数を返す。
fn:replace 引数に指定された置き換え前文字列に合致する文字列を、置き換え後文字列に変換して出力する。置き換え前文字列に合致するすべての文字列が置き換わる。
fn:split 文字列を引数に指定された区切り文字でわけ、配列に変換して出力する。
fn:startsWith ある文字列の最初に、指定された文字列が含まれるかを調べる。
fn:substring index番号を指定して、文字列内の特定文字列を抜き出す。
fn:substringAfter 引数に指定する区切り文字列以降の文字列を抜き出す。
fn:substringBefore 引数に指定する区切り文字列以前の文字列を抜き出す。
fn:toLowerCase 文字列を小文字に変換して出力する。
fn:toUpperCase 文字列を大文字に変換して出力する。
fn:trim 文字列の両端の空白文字を削除して出力する。

Functionsタグライブラリの使用例

fn:contains

構文1

fn:contains(string, substring)

戻り型
boolean
属性
引数 引数型 内容
string String 調査される文字列を指定する。
substring String 含まれるかどうか調査する文字列を指定する。

サンプルコード: 変数s1で指定された文字列の中に、"castle"という文字列が含まれるかを調べます。

<tr>
    <td>${s1}</td>
    <td>castle</td>
    <td>${fn:contains(s1, "castle")}</td>
</tr>

fn:containsIgnoreCase

構文1

fn:containsIgnoreCase(string, substring)

戻り型
boolean
属性
引数 引数型 内容
string String 調査される文字列を指定する。
substring String 含まれるかどうか調査する文字列を指定する。

サンプルコード: 変数s1で指定された文字列の中に、"CaStLe"という文字列が含まれるかを調べます。調べる際、大文字小文字の違いは区別されません。

<tr>
    <td>${s1}</td>
    <td>CaStLe</td>
    <td>${fn:containsIgnoreCase(s1, "CaStLe")}</td>
</tr>

fn:endsWith

構文1

fn:endsWith(string, suffix)

戻り型
boolean
属性
引数 引数型 内容
string String 調査される文字列を指定する。
suffix String 文字列の最後に含まれるかどうか調査する文字列を指定する。

サンプルコード: 変数s1で指定された文字列の最後に、"castle"という文字列が含まれるかを調べます。

<tr>
    <td>${s1}</td>
    <td>castle</td>
    <td>${fn:endsWith(s1, "castle")}</td>
</tr>

fn:escapeXml

構文1

fn:escapeXml(string)

戻り型
String
属性
引数 引数型 内容
string String XMLで解釈される文字記号をHTMLで表示できる文字記号に変換する文字列を指定する。

サンプルコード: 文字列"<foo>body of foo</foo>"の文字記号をHTMLで表示できる形に変換して表示します。

<tr>
    <td><foo>body of foo</foo></td>
    <td>${fn:escapeXml("<foo>body of foo</foo>")}</td>
</tr>

fn:indexOf

構文1

fn:indexOf(string, substring)

戻り型
int
属性
引数 引数型 内容
string String 調査される文字列を指定する。
substring String 文字列に含まれるかどうか調査する文字列を指定する。

サンプルコード: 変数s1で指定された文字列内で、初めて"castle"に合致した際の文字列のindex番号を返します。

<tr>
    <td>${s1}</td>
    <td>castle</td>
    <td>${fn:indexOf(s1, "castle")}</td>
</tr>

fn:join

構文1

fn:join(array, separator)

戻り型
String
属性
引数 引数型 内容
array String[ ] 一連の文字列にする配列を指定する。
separator String 一連の文字列にする際に、配列要素を分けるセパレータを指定する。

サンプルコード: 変数a1で指定された配列をセパレータ" + "で分けて、一連の文字列を生成します。

<tr>
    <td>${ex:display(a1)}</td>
    <td> + </td>
    <td>${fn:join(a1, " + ")}</td>
</tr>

fn:length

構文1

fn:length(input)

戻り型
String
属性
引数 引数型 内容
input 配列、
Collectionオ
ブジェクト、
String
カウントされる配列、Collectionオブジェクト、Stringを指定する。

サンプルコード: 変数s1で指定された文字列の文字数をカウントしてその数を返します。

<tr>
    <td>${s1}</td>
    <td>${fn:length(s1)}</td>
</tr>

fn:replace

構文1

fn:replace(inputString, beforeText, afterText)

戻り型
String
属性
引数 引数型 内容
inputString String fn:replaceタグが適用される文字列を指定する。
beforeText String 置き換えられる前の文字列を指定する。
afterText String 置き換えられた後の文字列を指定する。

サンプルコード: 変数s1で指定された文字列の内、文字列"e"を文字列"*"に置き換えて出力します。

<tr>
    <td>${s1}</td>
    <td>e</td>
    <td>*</td>
    <td>${fn:replace(s1, "e", "*")}</td>
</tr>

fn:split

構文1

fn:split(string, delimiters)

戻り型
String[]
属性
引数 引数型 内容
string String 配列に変換される文字列を指定する。
delimiters String 文字列を配列の要素に区切る区切り文字を指定する。

サンプルコード: 変数s3で指定された文字列を区切り文字"|"で区切り、配列に変換して出力しています。

<tr>
    <td>${s3}</td>
    <td> | </td>
    <td>${ex:display(fn:split(s3, "|"))}</td>
</tr>

fn:startsWith

構文1

fn:startsWith(string, prefix)

戻り型
boolean
属性
引数 引数型 内容
string String 調査される文字列を指定する。
prefix String 文字列の最初に含まれるかどうか調査する文字列を指定する。

サンプルコード: 変数s1で指定された文字列の最初に、"castle"という文字列が含まれるかを調べます。

<tr>
    <td>${s1}</td>
    <td>castle</td>
    <td>${fn:startsWith(s1, "castle")}</td>
</tr>

fn:substring

構文1

fn:substring(string, beginIndex, endIndex)

戻り型
boolean
属性
引数 引数型 内容
string String fn:substringタグが適用される文字列を指定する。
beginIndex int 抜き出される文字列の初めの文字のindex番号を指定する。
endIndex int 抜き出される文字列の最後の文字のindex番号を指定する。文字列の一番最後を指定する場合は-1を使用する。

サンプルコード: 変数zipで指定された文字列の内、index番号6文字目から最後までの文字列を出力しています。

<tr>
    <td>${zip}</td>
    <td>6</td>
    <td>-1</td>
    <td>P.O. Box: ${fn:substring(zip, 6, -1)}</td>
</tr>

fn:substringAfter

構文1

fn:substringAfter(string, substring)

戻り型
String
属性
引数 引数型 内容
string String fn:substringAfterタグが適用される文字列を指定する。
substring String 抜き出す文字列を特定するための区切り文字列を指定する。

サンプルコード: 変数zipで指定された文字列の内、"-"に合致する以降の文字列を出力しています。

<tr>
    <td>${zip}</td>
    <td>-</td>
    <td>P.O. Box: ${fn:substringAfter(zip, "-")}</td>
</tr>

fn:substringBefore

構文1

fn:substringBefore(string, substring)

戻り型
String
属性
引数 引数型 内容
string String fn:substringBeforeタグが適用される文字列を指定する。
substring String 抜き出す文字列を特定するための区切り文字列を指定する。

サンプルコード: 変数zipで指定された文字列の内、"-"に合致する以前の文字列を出力しています。

<tr>
    <td>${zip}</td>
    <td>-</td>
    <td>P.O. Box: ${fn:substringBefore(zip, "-")}</td>
</tr>

fn:toLowerCase

構文1

fn:toLowerCase(string)

戻り型
String
属性
引数 引数型 内容
string String 小文字に変換される文字列を指定する。

サンプルコード: 変数s1で指定された文字列を小文字に変換して出力します。

<tr>
    <td>${s1}</td>
    <td>${fn:toLowerCase(s1)}</td>
</tr>

fn:toUpperCase

構文1

fn:toUpperCase(string)

戻り型
String
属性
引数 引数型 内容
string String 大文字に変換される文字列を指定する。

サンプルコード: 変数s1で指定された文字列を大文字に変換して出力します。

<tr>
    <td>${s1}</td>
    <td>${fn:toUpperCase(s1)}</td>
</tr>

fn:trim

構文1

fn:trim(string)

戻り型
String
属性
引数 引数型 内容
string String 空白文字が取り除かれる文字列を指定する。

サンプルコード: 変数custIdで指定された文字列の両端の空白文字を削除して出力しています。

<tr>
    <td>
        <pre>${custId} (whith trim)</pre>
    </td>
    <td>
        <c:url value="http://acme.com/cust">
            <c:param name="custId" value="${fn:trim(custId)}"/>
        </c:url>
    </td>
</tr>

8Standard Taglibs:Functionsタグライブラリ