カスタムタグハンドラ内でのELの解釈

自作カスタムタグ内の属性の値に,ELを記述したいときがある。普通にカスタムタグのハンドラを作った場合,ELの式の文字列が単にsetterに渡されるだけである。

渡されたELの式を評価し,ELが示しているオブジェクトを得るためには,以下のコードを実行すればよい。

import org.apache.taglibs.standard.lang.support.*;

Hoge targetObj;

String target = “${hoge}”;

targetObj = (Hoge)ExpressionEvaluatorManager.evaluate(

    ”target”,     // 属性名

    target,      // EL式文字列

    Hoge.class,   // 期待する型

    this,        // このタグハンドラ

    pageContext); // ページコンテキスト

JSP側で例えばすでに などでコレクションからオブジェクトを取り出しているような場合には,EL式によってカスタムタグハンドラに(間接的ではあるが)オブジェクトとして渡すことができるようになるので,非常に生産性が向上するし,なによりも直感的だ。

ぜひ抑えておくべきテクである。

このエントリーをはてなブックマークに追加

関連記事

2023年のRemap

Remapにファームウェアビルド機能を追加しました

Google I/O 2023でのウェブ関連のトピック

2022年を振り返って

現在のRemapと今後のRemapについて