Mayaaはm:execを使うと割と自由自在に書けるようになる

2008/05/04

僕もそうですが、JSPやPHPを通過してきた人にはMayaaはとっつきにくくて、なかなか思ったように書けなくてモヤモヤするようです。
それは大体、「この辺でいったん変数に入れて、ここで・・・」とか「ここで準備処理をして・・・」なんて簡単なことのやり方がわからなかったりするためです。

そういう場合はm:execを覚えるとよいです。これを覚えれば、割と自由自在に書けるようになりました。

m:execとは

m:execは、「このタイミングで何か処理をさせることができるタグ」です。
例えば、判定の結果を変数に入れておいて、後続のm:ifで使うなんて時は、
<m:exec script="${var isCancellable = ・・・}" />
<m:with m:id="xxx">
  <m:if test="${isCancellable}">
    ・・・
  </m:if>
  <m:if test="${!isCancellable}">
    ・・・
  </m:if>
</m:with>

みたいな感じで書けます。特にMayaaのm:ifはelseが書けないので、「Aの場合はこう、Aじゃない場合はこう」と書く場合にはm:ifを2つ書かねばなりません。
そのときにAかどうかを判定するのがながーいタイピングになると、それが2つも登場してなんだかイヤになります。
でも事前にm:execを使って短い変数に入れておくと、条件分岐がすっきり書けます。

m:execの処理(script属性)はJavascriptで書きます。
MayaaはサーバーサイドJavascriptで動いていることを考えるとなるほどと思うと思います。

処理順序には注意

ただ、Mayaaは「上から順に処理される、とは限らない」ことを意識しておく必要はあります。
Mayaaの書いた順は関係なくて、htmlテンプレートの外側のタグから処理されるので、Mayaaでm:execを先に書いたからといっても先に処理されるとは限らない、というのを意識して使う必要があります。

多用しすぎるとアレですが

そもそもMayaaタグとStrutsタグがあればほとんどのことはできるので、多用するのはアレだと思います。
多用してアクロバティックなコードになったら元も子もないので、
ここぞというポイントで、可読性をあげるために使う、くらいのスタンスで使うべきだと考えます。

Java | コメント(0) | トラックバック(0)
トラックバック
トラックバックURL:
コメントをどうぞ
名前 (入力しなければ「通りすがり」):

メールアドレス (入力しても公開されません):

URL (入力すればリンクが張られます):


コメント:

(コメントにタグなどを使ってもタグがそのままが表示されます)