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 はプロセッサではなくエンジン機能ですが、利用の仕方に違いはありません) 利用例