Top
2-1. 最初の一歩


Documentation

2-1. 最初の一歩

最初に簡単なページを作成し、動作させてみましょう。Tomcat を再起動する必要はありません。「インストールしよう」で動作させた C:\tomcat\webapps\mayaa の下に新しくファイルを追加します。

Hello Mayaa

「Hello Mayaa!」とだけ表示するページを作ります。ダミーメッセージを含むテンプレート hello.html と、その設定を行う hello.mayaa を次のように作成します。

hello.html
<html>
<body>
    <span id="message">dummy message</span>
</body>
</html>
hello.mayaa
<?xml version="1.0" encoding="UTF-8"?>
<m:mayaa xmlns:m="http://mayaa.seasar.org">
    <m:write m:id="message" value="Hello Mayaa!" />
</m:mayaa>

テンプレート hello.html 上の span タグと id が一致するものを mayaa ファイル hello.mayaa 上から探し、value の値である「Hello mayaa!」という文字列に置き換えて出力します。

ブラウザで http://localhost:8080/mayaa/hello.html にアクセスしてみましょう。

実行結果 (改行などは実際の実行結果と異なります)
<html>
<body>
    Hello Mayaa!
</body>
</html>

テンプレート上のタグを残す

mayaa ファイルで使用している m:writevalue の値をそのまま出力します。テンプレート上のタグを維持したまま中身だけ書き換えたい場合は、属性として replace="false" を追加します。replace はテンプレート上のタグを残すかどうかの設定で、デフォルトは true です。

hello.html
<html>
<body>
    <span id="message">dummy message</span>
</body>
</html>
hello.mayaa
<?xml version="1.0" encoding="UTF-8"?>
<m:mayaa xmlns:m="http://mayaa.seasar.org">
    <m:write m:id="message" value="Hello Mayaa!" replace="false" />
</m:mayaa>
実行結果 (改行などは実際の実行結果と異なります)
<html>
<body>
    <span id="message">Hello Mayaa!</span>
</body>
</html>

スクリプトでオブジェクトを出力する

Mayaa では様々な場所でスクリプトを使用できます。スクリプト言語は JavaScript (標準で利用する実装は Rhino) です。スクリプトを使用するときには ${ } で囲んで記述します。

hello.html
<html>
<body>
    <span id="message">dummy message</span>
</body>
</html>
hello.mayaa
<?xml version="1.0" encoding="UTF-8"?>
<m:mayaa xmlns:m="http://mayaa.seasar.org">
    <m:write m:id="message" value="${ 1 + 2 }" />
</m:mayaa>
実行結果 (改行などは実際の実行結果と異なります)
<html>
<body>
    3
</body>
</html>

■request や session 等に格納されている値を使う

JSP と同じようにスクリプトから request や session を使えます。たとえば request スコープにある "attributeName" という属性の値を取得するには、${ request.getAttribute("属性名") } と書きます。

参照するだけであれば、もっと簡単に、直接 ${ 属性名 } と変数名として記述できます。変数をスコープから探す順番は、page スコープ、request スコープ、session スコープ、application スコープの順で、どこにも見つからない場合は例外を投げます。

またクライアントから送信されてきたパラメータを参照するには、${ param.パラメータ名 } とします。この場合、存在しないパラメータ名を指定すると null が返ります。

試しにクライアントから送信されてきたパラメータを参照してみましょう。hello.mayaa を次のように書き換えます。

hello.mayaa
<?xml version="1.0" encoding="UTF-8"?>
<m:mayaa xmlns:m="http://mayaa.seasar.org">
    <m:write m:id="message" value="Hello ${ param.name }" />
</m:mayaa>

ブラウザで http://localhost:8080/mayaa/hello.html?name=world にアクセスしてみましょう。

実行結果 (改行などは実際の実行結果と異なります)
<html>
<body>
    Hello world
</body>
</html>

URL で渡した name を参照できましたね。

変更して確認する

HTML ファイル、Mayaa ファイルを書き換えて保存し、ブラウザで再読み込みさせてください。変更内容が反映された画面が表示されます。

Mayaa は HTML ファイル、Mayaa ファイルのタイムスタンプを監視し、変更があったときにビルドしなおす機能を持っています。この機能は標準で有効ですが、設定で無効にすることもできます。設定方法については 5-1.「エンジン設定方法」をご覧ください。

Copyright (c) 2004-2009 the Seasar Foundation and others. all rights reserved.