--------
Mayaa
--------
agata
baba
--------
2008-03-01
--------
{目次}
*{{{#Mayaa}Mayaa}}
*{{{#Mayaa_と連携するための設定}Mayaa と連携するための設定}}
*{{{#Cubby_と_Mayaa_の使い分け}Cubby と Mayaa の使い分け}}
{Mayaa}
HTML をテンプレートとしてビューを作成したい場合、HTML テンプレートエンジンである{{{http://mayaa.seasar.org}Mayaa}}と連携することができます。
以下、Mayaaとの連携方法を示します。\
動作は Cubby 1.1.0、Mayaa-1.1.18で確認しています。\
Cubby のバージョンとそれに対応する Mayaa の必須バージョンは以下の表で確認してください。
*-----------+-----------+
|| Cubby || Mayaa |
*-----------+-----------+
| 1.1.x 系 | >= 1.1.18 |
*-----------+-----------+
| 1.0.x 系 | >= 1.1.15 |
*-----------+-----------+
Mayaa の必須バージョン
また、Cubby のサンプル war に「Mayaa との連携のサンプル」がありますのでそちらも参照ください。
{Mayaa と連携するための設定}
[[1]]Mayaa の依存 jar ファイルを追加する
Mayaa が依存する jar ファイルを全て追加します。Maven2 を使用している場合は dependencies ディレクティブに Mayaa を追加するだけでOKです。
[[2]]web.xml へ MayaaServlet を追加する
web.xml に MayaaServlet を定義し、*.html を処理するように設定します。
+------------------------------------------------------+
...
MayaaServlet
org.seasar.mayaa.impl.MayaaServlet
1
...
MayaaServlet
*.html
...
+------------------------------------------------------+
[[3]]アクションメソッドのフォワード先を「*.html」にする
アクションクラスはJSPの時と作り方は変わりません。\
アクションメソッドのフォワード先を「*.html」にして、ビューが Mayaa で実行されるようにします。
+------------------------------------------------------+
public class MayaaComponentsAction extends Action {
...
@Override
public void prerender() {
super.prerender();
hobbies = getHobbies();
colors = getColors();
}
@Form("form")
public ActionResult components() {
return new Forward("components.html");
}
...
}
+------------------------------------------------------+
[[4]]HTML テンプレートと Mayaa ファイルを作成する
HTML テンプレートと Mayaa ファイルを作成します。\
これは Mayaa のルールで作成します。Cubby のカスタムタグを Mayaa ファイルに記述することで、Cubby の機能を Mayaa から利用できます。
{Cubby と Mayaa の使い分け}
Cubby と Mayaa は機能が一部重複しています。\
レイアウト共有やコンポーネント(HTML 部品)、JavaScript(Rhino)による強力なスクリプト機能は Mayaa のほうが優れているので、そのまま使用することをおすすめします。
例えば下記の例では、テーブルの行毎の色づけ(odd/even)を Mayaa の forEach プロセッサと JavaScript で実現しています。
Cubby のカスタムタグは主に入力フォームの生成に使用してください。
<>
+------------------------------------------------------+
components.html
[戻る]
+------------------------------------------------------+
<>
+------------------------------------------------------+
+------------------------------------------------------+