Mayaa Coreプロセッサリファレンス
Mayaa 標準で用意しているプロセッサのリファレンスマニュアルです。
目次
出力系
- attribute プロセッサ
- comment プロセッサ
- echo プロセッサ
- element プロセッサ
- formatDate プロセッサ
- formatNumber プロセッサ
- write プロセッサ
制御系
コンポーネント系
その他
出力系
■attribute プロセッサ
echo プロセッサおよび element プロセッサの子として使用し、親プロセッサに属性を追加します。value の実行結果が null の場合はその属性を削除します。
write
プロセッサのescapeXml, escapeWhitespace相当の変換をしてから出力します。
属性名 | 説明 | 必須 | 値の制限 | 規定値 |
---|---|---|---|---|
name | 生成する属性名。 | ○ |
文字列 | |
value | 生成する属性値。null の場合はその属性自体を削除。 | ○ |
||
escapeAmp ( **※** ) | true の場合、value の & を & に置換する。 |
論理値 | true |
■comment プロセッサ
ボディの内容をコメント(<!--
と-->
ではさんだ状態)として出力します。
タグのボディが有効です。利用例
■echo プロセッサ
割り当てられたタグをそのまま出力します。m:echo タグのボディに attribute プロセッサを書くと属性を追加または変更、削除できます。 タグのボディが有効です。利用例
echo プロセッサの属性およびボディでは、スクリプトでテンプレート側の属性値を参照できます。属性名を変数名とし、属性値を文字列として持っています。たとえば a タグにバインディングした echo で ${ href }
とすれば、元の a タグの href 属性の値を取得できます。
属性名 | 説明 | 必須 | 値の制限 | 規定値 |
---|---|---|---|---|
name | 出力するタグの要素名。 | 文字列 | 要素名を置き換える場合のみ使用する。 |
■element プロセッサ
name
で指定したタグを出力します。m:element タグのボディに attribute プロセッサを書くと属性を追加できます。
タグのボディが有効です。
属性名 | 説明 | 必須 | 値の制限 | 規定値 |
---|---|---|---|---|
name | 生成するタグの要素名。 | ○ |
文字列 |
■formatDate プロセッサ
日付を指定したパターンにフォーマットして出力します。 value に null を渡した場合、default 属性をしているなら default を出力します。そうでない場合は何も出力しません。
属性名 | 説明 | 必須 | 値の制限 | 規定値 |
---|---|---|---|---|
value | 出力する値。 | ○ |
java.util.Date | |
pattern | 日付をフォーマットするパターン。 java.text.SimpleDateFormat のフォーマット書式に準じます。 |
文字列 | ||
default | value が null の場合に出力する値。 |
■formatNumber プロセッサ
数値を指定したパターンにフォーマットして出力します。value に null を渡した場合、default 属性をしているなら default を出力します。 そうでない場合は何も出力しません。
属性名 | 説明 | 必須 | 値の制限 | 規定値 |
---|---|---|---|---|
value | 出力する値。 | ○ |
数値 | |
pattern | 数値をフォーマットするパターン。 java.text.DecimalFormat のフォーマット書式に準じます。 |
文字列 | ||
default | value が null の場合に出力する値。 |
■write プロセッサ
value で指定したオブジェクト、またはタグのボディを文字列として出力します。タグのボディが有効です。 利用例
- value 属性とタグのボディの両方を記述した場合、value 属性が優先されます。
- value 属性のスクリプトでは、bodyText という変数を利用できます。bodyText はタグに記述したボディの内容を持ちます。ボディを記述していない場合、対象の HTML テンプレートの内容を持ちます。
属性名 | 説明 | 必須 | 値の制限 | 規定値 |
---|---|---|---|---|
value | 出力する値。 ボディまたはvalueのどちらか一方必須。( **※** ) |
○ |
||
default | value が null の場合に出力する値。 (escapeXml, escapeWhitespace, escapeEol による置換処理の対象になりません) |
|||
escapeXml | true の場合、value の & , < , > , " を & , < , > , " に置換する。 |
論理値 | true | |
escapeWhitespace | true の場合、value の CR , LF , TAB文字 を 
 , 
 , 	 に置換する。 |
論理値 | false | |
escapeEol | true の場合、value の改行コード (CRLF, CR, LF) を br タグに置換する。 |
論理値 | true |
制御系
■for プロセッサ
Java の for 文のように繰り返し処理をします。タグのボディが有効です。利用例
- 最初に一度
init
を実行してループ処理を開始します。 - 1 回の処理の最初に
test
を実行し、true
ならループ処理を続行し、false
ならループ処理を終了します。 - 1 回の処理の最後に
after
を実行します。
無限ループを避けるため、ループ回数が上限数以上になると例外が発生します。(org.seasar.maya.impl.engine.processor.TooManyLoopException
)
属性名 | 説明 | 必須 | 値の制限 | 規定値 |
---|---|---|---|---|
init | 初期化処理。 | |||
test | 判定する条件式。true ならば処理を続行。 | ○ |
論理値 | |
after | ループ処理 1 回の後処理。 | |||
max | ループ回数の上限。 | 整数値 | 256 |
■forEach プロセッサ
items の値を繰り返し処理します。現在の要素は var 属性で指定した名前の変数に格納され、繰り返し回数は index 属性で指定した名前の変数に格納されます (0 から始まります)。タグのボディが有効です。
items には java.util.Collection、java.util.Iterator、java.util.Enumeration、java.util.Map を実装したものと、配列を使えます。Iterator、Enumeration、配列はそのままの順番で処理します。Collection は iterator メソッドで取得した Iterator の順番で処理します。
Map は entrySet メソッドで取得した Set を利用し、Collection の処理に準じます。そのため Map を処理する場合には、要素は key と value の 2 つのプロパティを持ちます。
items が null の場合は長さ 0 の配列として処理します。以上のもの以外を items に渡すと、長さ 1 の配列として処理します。
属性名 | 説明 | 必須 | 値の制限 | 規定値 |
---|---|---|---|---|
items | 繰り返し処理する値。 | ○ |
java.util.Collection, java.util.Iterator, java.util.Enumeration, java.util.Map, 配列 |
|
var | 繰り返しの現在要素の変数名。 | ○ |
文字列 | |
index | 繰り返し回数の変数名。(0 開始) | 文字列 |
■if プロセッサ
test
の値が true
の場合のみボディを処理します。
タグのボディが有効です。利用例
属性名 | 説明 | 必須 | 値の制限 | 規定値 |
---|---|---|---|---|
test | 判定する条件式。true ならば有効。 | ○ |
論理値 |
■with プロセッサ
with プロセッサ自体は何もしません。複数のプロセッサをグルーピングするために使います。 タグのボディが有効です。利用例
コンポーネント系
■doBase プロセッサ
コンポーネントで使う場合
コンポーネントを使う元テンプレートのタグのボディを処理します。
レイアウトを利用するテンプレートで使う場合
レイアウトの insert のタグのボディを処理します。
■doBody プロセッサ
通常は利用しません。
割り当てられたタグのボディを処理します。for プロセッサなどタグのボディが有効なプロセッサで動作します。 通常は明示的に使用することはありませんが、Mayaa ファイル側のボディに attribute 以外のプロセッサや 空白 (タブ文字、改行を含む) 以外の文字列を記述した場合、doBody を使用しなければタグのボディが処理されません。
■doRender プロセッサ
コンポーネントを定義する場合
割り当てられたタグをコンポーネントとして定義します。名前は同じテンプレート上で重複しないように付けてください。 利用例
属性名 | 説明 | 必須 | 値の制限 | 規定値 |
---|---|---|---|---|
name | コンポーネントの名前。 | 文字列 | "" (空文字列) |
レイアウトを利用する場合
レイアウトの insert に渡す部分を定義します。 利用例
属性名 | 説明 | 必須 | 値の制限 | 規定値 |
---|---|---|---|---|
name | レイアウトの insert 名。 | 文字列 | "" (空文字列) |
■insert プロセッサ
コンポーネントを使う場合
指定したパスのコンポーネントを割り当てます。 利用例
パスはスクリプトで指定することもできます。( **※** )
( **※** :1.1.8 で追加されたもの)
属性名 | 説明 | 必須 | 値の制限 | 規定値 |
---|---|---|---|---|
path | コンポーネントのパス。 | ○ |
( **※** 1.1.7 以前は文字列) | |
name | コンポーネントの名前。 | 文字列 | "" (空文字列) |
レイアウトを定義する場合
extends しているテンプレートの名前が一致する doRender を割り当てます。 利用例
属性名 | 説明 | 必須 | 値の制限 | 規定値 |
---|---|---|---|---|
name | レイアウトの insert 名。 | 文字列 | "" (空文字列) |
その他
■exec プロセッサ
スクリプトを実行するために使います。script、srcの両方に指定された場合、srcから先に実行されます。 利用例
exec プロセッサで実行したスクリプトによって宣言された変数は、exec プロセッサと同じ階層のスコープで有効です。(1.1.9 以前の src 属性、および 1.1.0-beta6 以前の script 属性では、exec プロセッサの内側階層のスコープでのみ有効でした)
属性名 | 説明 | 必須 | 値の制限 | 規定値 |
---|---|---|---|---|
script | 実行するスクリプト。`${}` 表記で記述します。 | |||
src | 実行する外部 JavaScript ファイルのパス。コンテキストルートからの絶対パス、Mayaa ファイルからの相対パスで記述できます。 | 文字列 | ||
encoding | src で指定したファイルを読み込むときの 文字エンコーディング。 |
Java文字セット名 | file.encoding or UTF-8 |
■ignore タグ
割り当てた id を処理対象外にします。(ignore はプロセッサではなくエンジン機能ですが、利用の仕方に違いはありません) 利用例
■null タグ
何も出力しません。(null はプロセッサではなくエンジン機能ですが、利用の仕方に違いはありません) 利用例