Top
2-3. JSPカスタムタグを使う


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 カスタムタグ」を参照してください)

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