JSP/EL式/EL関数/オリジナルのEL関数を作る

JSP/EL式/EL関数/オリジナルのEL関数を作る

処理を書く

処理は基本的にStringを受け取って、Stringをリターンする処理を書く。

まず適当なクラスを作って、そこにクラスメソッドを作る

Hoge.java
public class Hoge{
    public static String aaa(String bbb){		
        return bbb + "hoge";		
    }
}

taglibのファイルにEL関数の宣言を追加する

taglibのファイルの中に 呼び出し名 対象のクラス 対象のメソッドの呼び出し方 を記述。

<?xml version="1.0" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd" version="2.0">
<tlib-version>2.0</tlib-version>
<function>
    <name>hoge</name>
    <function-class>jp.co.hogehoge.util.Hoge</function-class>
    <function-signature>java.lang.String aaa(java.lang.String)</function-signature>
</function>
</taglib>

web.xmlにtaglibを使う記述(旧式)

※このやり方は旧式らしく現代ではこんな面倒なことをする必要は無いっぽい

これはもうtaglibを使っていれば記述されているかもしれんがjspの設定の所にさっきのtaglibファイルの記述を使うという設定をする

    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <el-ignored>false</el-ignored>
            <page-encoding>UTF-8</page-encoding>            
            <scripting-invalid>false</scripting-invalid>
            <include-prelude>/WEB-INF/view/common/common.jsp</include-prelude>
        </jsp-property-group>
        <taglib>
            <taglib-uri>http://hogehoge.co.jp/hoge</taglib-uri>
            <taglib-location>/WEB-INF/taglib/util.tld</taglib-location>
        </taglib>
    </jsp-config>

あとはいつもどおり名前空間に引きこんで使うだけ

taglibを使う記述

↑のようなまどろっこしい記述をしなくてもtldファイルを用意して、JSPに

<%@taglib uri='/WEB-INF/tlds/hoge.tld' prefix='hhh' %>

のように書けば終わりのようだ。 たしかにtaglib-locationというのはわかるがtaglib-uriになんの意味があるのかさっぱりだからな。

タグ

java/jsp/el_syntax/el_function/make_my_el_function.txt · 最終更新: 2018-03-30 17:52 by ore