6. EL関数¶
IM-LogicDesigner では、分岐条件、繰り返し条件等でExpression Language(EL)を利用します。
本章では、EL内で独自の関数を利用できるようEL関数の追加を行う方法を解説します。
6.1. EL関数の追加¶
EL関数を追加するには、 public static 修飾子を持つメソッドを実装する必要があります。
また、起動時に自動的に検出を行う為に、 jp.co.intra_mart.foundation.logic.annotation.ProvideELFunction アノテーションをクラスに付与します。
EL関数として追加するメソッドには、 jp.co.intra_mart.foundation.logic.annotation.ELFunction アノテーションを付与してください。
EL関数名は対象となるメソッドのメソッド名です。
package org.example.logicdesigner.el; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import jp.co.intra_mart.foundation.logic.annotation.ELFunction; import jp.co.intra_mart.foundation.logic.annotation.ProvideELFunction; @ProvideELFunction public class MyELFunction { @ELFunction(prefix = "my") public static String encodeURIComponent(String value) { try { return URLEncoder.encode(value, StandardCharsets.UTF_8.name()); } catch (UnsupportedEncodingException ignore) { return null; } } @ELFunction(prefix = "my") public static String decodeURIComponent(String value) { try { return URLDecoder.decode(value, StandardCharsets.UTF_8.name()); } catch (UnsupportedEncodingException ignore) { return null; } } }
- @ELFunction アノテーションには、EL関数のプレフィックスが指定可能です。この例では、 ${my:encodeURIComponent('<br />')} のように呼び出すことが可能です。
- 一つのクラスに複数のEL関数を定義することが可能です。