public class ELFunctions
extends java.lang.Object
EL式にて提供するカスタム関数が定義されるクラスです。 iPLAss上でTemplateとして管理されるJSPからは、 RequestContext, SessionContextそれぞれにsetAttributeした値を透過的に取得可能です。
JSPでの利用例を以下に示します。
<% @page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<% @taglib prefix="m" uri="http://iplass.org/tags/mtp"%>
<html>
:
:
<body>
:
:
<%-- testBean.user.nameの値をXMLエスケープして出力 --%>
userName:${m:esc(testBean.user.name)}<br>
:
:
<%-- m:tcPath()にてtenantContextPathを出力 --%>
<a href="${m:tcPath()}/user/update">更新する</a>
:
:
</body>
</html>
| コンストラクタと説明 |
|---|
ELFunctions() |
| 修飾子とタイプ | メソッドと説明 |
|---|---|
static java.lang.String |
esc(java.lang.String str)
strをHTML出力用にエスケープします。
|
static java.lang.String |
escJs(java.lang.String str)
strをJavaScript出力用にエスケープします。
|
static java.lang.String |
escXml(java.lang.String str)
strをXML(XHTML)出力用にエスケープします。
|
static java.lang.String |
fixToken()
トランザクショントークン(セッション単位の固定値)の値を出力します。
|
static java.lang.String |
fmt(java.lang.Object value,
java.lang.String pattern)
指定のvalueをpatternでフォーマット出力します。
|
static java.lang.String |
msg(java.lang.String categoryName,
java.lang.String messageId)
Message定義(メタデータ)として登録されているメッセージを出力します。
|
static java.lang.String |
msgp(java.lang.String categoryName,
java.lang.String messageId,
java.lang.Object params)
Message定義(メタデータ)として登録されているメッセージを出力します。
|
static java.lang.Object |
nvl(java.lang.Object val,
java.lang.Object defaultVal)
valがnullであった場合、defaultValを返却します。
|
static java.lang.String |
outputToken(java.lang.Object tokenOutputType,
boolean createNew)
トランザクショントークンを出力します。
|
static java.lang.Object |
prefs(java.lang.String name)
nameで指定されるPreferenceの値を取得します。
|
static RequestContext |
rc()
RequestContextのインスタンスを取得します。
|
static java.lang.String |
rs(java.lang.String baseName,
java.lang.String key)
指定された基底名、キーからResourceBundleに定義された文字列を返します。
|
static java.lang.String |
rsp(java.lang.String baseName,
java.lang.String key,
java.lang.Object params)
指定された基底名、キーからResourceBundleに定義された文字列を返します。
|
static java.lang.String |
tcPath()
tenant名まで含むコンテキストパスを取得します。
|
static java.lang.String |
token()
トランザクショントークンの値を出力します。
|
public static RequestContext rc()
RequestContextのインスタンスを取得します。
利用例
${m:rc().session.getAttribute('cart').count}
このEL関数呼び出しは、
TemplateUtil.getRequestContext()呼び出しと等価です。
note:
iPLAss3.0からは、JSPの暗黙変数requestから透過的にRequestContextの値を取得可能です。
当該関数は、明示的にRequestContextのインスタンスを取得したい場合に利用可能です。
public static java.lang.String tcPath()
<a href="${m:tcPath()}/path/to/action">link</a>
このEL関数呼び出しは、
TemplateUtil.getTenantContextPath()呼び出しと等価です。public static java.lang.String msg(java.lang.String categoryName,
java.lang.String messageId)
多言語化されたメッセージ: ${m:msg('path/to/MessageCategory', 'M101')}
このEL関数呼び出しは、
TemplateUtil#getMessageString(String, String)呼び出しと等価です。categoryName - メッセージ定義のカテゴリ名messageId - メッセージIDpublic static java.lang.String msgp(java.lang.String categoryName,
java.lang.String messageId,
java.lang.Object params)
多言語化されたメッセージ: ${m:msgp('path/to/MessageCategory', 'M101', bean.messageParams)}
このEL関数呼び出しは、
TemplateUtil.getMessageString(String, String, Object...)呼び出しと等価です。categoryName - メッセージ定義のカテゴリ名messageId - メッセージIDparams - メッセージへ埋め込むパラメータpublic static java.lang.String escJs(java.lang.String str)
${m:escJs(bean.user.name)}
このEL関数呼び出しは、
StringUtil#escapeJavaScript(String)呼び出しと等価です。str - エスケープする文字列public static java.lang.String escXml(java.lang.String str)
${m:escXml(bean.user.name)}
このEL関数呼び出しは、
StringUtil#escapeXml10(String)呼び出しと等価です。str - エスケープする文字列public static java.lang.String esc(java.lang.String str)
${m:esc(bean.user.name)}
このEL関数呼び出しは、
StringUtil#escapeHtml(String)呼び出しと等価です。str - エスケープする文字列public static java.lang.String outputToken(java.lang.Object tokenOutputType,
boolean createNew)
TemplateUtil.TokenOutputTypeに定義されるEnum値もしくは、そのString表現を指定可能です。
tokenOutputType、createNewについては、TemplateUtil.outputToken(TokenOutputType, boolean)を参照下さい。
${m:outputToken('FORM_HTML', true)}
このEL関数呼び出しは、
TemplateUtil.outputToken(TokenOutputType, boolean)呼び出しと等価です。tokenOutputType - 出力形式createNew - 新規のトークンを発行する場合はtrue。すでに発行済みの(セッション単位に固定の)トークンを取得する場合はfalse。public static java.lang.String token()
<input type="hidden" name="_t" value="${m:token()}">
このEL関数呼び出しは、outputStyle=VALUE、createNew=trueにて
TemplateUtil.outputToken(TokenOutputType, boolean)呼び出しと等価です。public static java.lang.String fixToken()
<input type="hidden" name="_t" value="${m:fixToken()}">
このEL関数呼び出しは、outputStyle=VALUE、createNew=falseにて
TemplateUtil.outputToken(TokenOutputType, boolean)呼び出しと等価です。public static java.lang.Object prefs(java.lang.String name)
${m:prefs('preferenceName')}
name - Preferenceのnamepublic static java.lang.String fmt(java.lang.Object value,
java.lang.String pattern)
<input type="text" name="endDate" value="${m:fmt(dateVal, 'yyyy/MM/dd')}">
valueには、Dateのインスタンスもしくは、Numberのインスタンスを指定可能です。
Dateの場合は、SimpleDateFormatにて定義されるpattern、
Numberの場合は、DecimalFormatにて定義されるpatternを指定可能です。value - フォーマット対象のオブジェクト、Date or Numberpattern - フォーマットパターンpublic static java.lang.Object nvl(java.lang.Object val,
java.lang.Object defaultVal)
<input type="text" name="test" value="${m:nvl(testVal, 'testVal is null')}">
val - null検証する値defaultVal - valがnullの場合返却する値public static java.lang.String rs(java.lang.String baseName,
java.lang.String key)
${m:rs('resource-bundle-name', 'key')}
このEL関数呼び出しは、
TemplateUtil#getResourceString(ResourceBundle, String, String)呼び出しと等価です。baseName - ResourceBundleのbaseNamekey - キーpublic static java.lang.String rsp(java.lang.String baseName,
java.lang.String key,
java.lang.Object params)
${m:rsp('resource-bundle-name', 'key', params)}
このEL関数呼び出しは、
TemplateUtil#getResourceString(ResourceBundle, String, String, Object...)呼び出しと等価です。baseName - ResourceBundleのbaseNamekey - キーparams - 文字列へ埋め込むパラメータ