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:write
は value
の値をそのまま出力します。テンプレート上のタグを維持したまま中身だけ書き換えたい場合は、属性として 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.「エンジン設定方法」をご覧ください。