Documentation
2-3. JSP カスタムタグを使う
Mayaa では JSP カスタムタグをほぼそのまま利用できます (違いについては「Mayaa と JSP カスタムタグ」を参照してください)。ここでは例として JSTL 1.0 の一部を使ってみましょう。Mayaa Getting Started package には JSTL 1.1 のライブラリ (Jakarta Taglibs - Standard Taglib 1.1.2) を同梱していますので、.mayaa ファイルに記述を追加するだけで使えるようになります。(core および format のみ)
JSTL core の out タグを使う
「Hello Mayaa!」とだけ表示するサンプルを JSTL core の out
タグを使って作ってみましょう。「インストールしよう」で動作させた C:\tomcat\webapps\mayaa
の下に新しくファイルを追加します。
ダミーメッセージを含むテンプレート hello_jstl.html
と、その設定を行う hello_jstl.mayaa
を次のように作成します。
hello_jstl.html
<html> <body> <span id="message">dummy message</span> </body> </html>hello_jstl.mayaa
<?xml version="1.0" encoding="UTF-8"?> <m:mayaa xmlns:m="http://mayaa.seasar.org" xmlns:c="http://java.sun.com/jsp/jstl/core"> <c:out m:id="message" value="Hello Mayaa!" /> </m:mayaa>
「2. 最初の一歩」で作成したものとの異なるのは mayaa ファイルのみです。記述方法については次の「6. 設定の記述方法」で説明しますので、ここでは例の通りに作成してください。
ブラウザで http://localhost:8080/mayaa/hello_jstl.html
にアクセスしてみましょう。
実行結果 (改行などは実際の実行結果と異なります)
<html>
<body>
Hello Mayaa!
</body>
</html>
「2. 最初の一歩」で m:write
を使った場合と全く同じ結果になりました。id 指定したタグを出力することも、値としてスクリプトを使用することも、m:write
と同様に実現できます。
■テンプレート上のタグを残す
「2. 最初の一歩」のサンプルの m:write
を JSTL core の out
タグに置き換えたものです。
hello_jstl.html
<html> <body> <span id="message">dummy message</span> </body> </html>hello_jstl.mayaa
<?xml version="1.0" encoding="UTF-8"?> <m:mayaa xmlns:m="http://mayaa.seasar.org" xmlns:c="http://java.sun.com/jsp/jstl/core"> <c:out m:id="message" value="Hello Mayaa!" m:replace="false" /> </m:mayaa> 実行結果 (改行などは実際の実行結果と異なります) <html> <body> <span id="message">Hello Mayaa!</span> </body> </html>
■スクリプトでオブジェクトを出力する
「2. 最初の一歩」のサンプルの m:write
を JSTL core の out
タグに置き換えたものです。
hello_jstl.html
<html> <body> <span id="message">dummy message</span> </body> </html>hello_jstl.mayaa
<?xml version="1.0" encoding="UTF-8"?> <m:mayaa xmlns:m="http://mayaa.seasar.org" xmlns:c="http://java.sun.com/jsp/jstl/core"> <c:out m:id="message" value="${ 1 + 2 }" /> </m:mayaa> 実行結果 (改行などは実際の実行結果と異なります) <html> <body> 3 </body> </html>
この実行結果は Mayaa 1.1.2 以前の場合、m:write
の実行結果「3」と異なり、「3.0」となります。これは、スクリプトから c:out
に渡る値の型が double になるためです。(「Mayaa と JSP カスタムタグ」を参照してください)