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
- 文字列へ埋め込むパラメータ