Top
3-7. タグを消す


Documentation

3-7. タグを消す

テンプレートを直接ブラウザでプレビューするときのためのダミーを、実行時に自動的に非表示にしたい場合があるでしょう。その場合は null タグもしくは rendered 属性を使います。rendered 属性に false をセットした場合、プロセッサとして null タグを指定したものとして扱います。

簡単な例

ごく簡単なサンプルで実際に使ってみましょう。テンプレートにリスト (ul) があり、リスト要素 (li) の先頭のみを使う場合を考えて見ましょう。

remove.html
<html>
<body>
    <ul>
        <span id="loop">
            <li><span id="message">dummy message</span></li>
        </span>
        <li class="dummy">dummy 1</li>
        <li class="dummy">dummy 2</li>
        <li class="dummy">dummy 3</li>
    </ul>
</body>
</html>
remove.mayaa
<?xml version="1.0" encoding="UTF-8"?>
<m:mayaa xmlns:m="http://mayaa.seasar.org">
    <m:for m:id="loop"
            init="${ var i = 0; }"
            test="${ i &lt; 5 }"
            after="${ i += 1 }" />

    <m:write m:id="message" value="${ i }" />

    <m:null m:xpath="//li[@class='dummy']" />
</m:mayaa>

実行時に出力したくないタグに class="dummy" を設定し、XPath を使って null タグを対応させています。

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

実行結果 (改行などは実際の実行結果と異なります)
<html>
<body>
    <ul>
        <li>0</li>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>
</body>
</html>

ダミーの要素は出力されず、ループして出力するよう設定したもののみが出力されていることがわかります。

使い分け

出力しない設定をする方法は null タグrendered 属性の 2 種類があります。基本的に mayaa ファイルに設定を記述する場合は null タグを使い、テンプレートに設定を記述する場合は rendered 属性を使います。テンプレートに記述する場合は、純粋な HTML でなくなってしまうことと、複数要素を一括して指定する方法がないというデメリットがあります。

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