Mayaa Coreプロセッサリファレンス

Mayaa 標準で用意しているプロセッサのリファレンスマニュアルです。

出力系

■attribute プロセッサ

echo と組み合わせた利用例

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 の
& , < , > , "

&amp; , &lt; , &gt; , &quot;
に置換する。
論理値 true
escapeWhitespace true の場合、value の
CR , LF , TAB文字

&#xd; , &#xa; , &#x9;
に置換する。
論理値 false
escapeEol true の場合、value の改行コード (CRLF, CR, LF) を
br タグに置換する。
論理値 true

制御系

■for プロセッサ

Java の for 文のように繰り返し処理をします。タグのボディが有効です。利用例

  1. 最初に一度 init を実行してループ処理を開始します。
  2. 1 回の処理の最初に test を実行し、true ならループ処理を続行し、false ならループ処理を終了します。
  3. 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 はプロセッサではなくエンジン機能ですが、利用の仕方に違いはありません) 利用例