libro
www.tuyano.com
初心者のためのGroovy/Grails入門

GSPのカスタムタグを使おう (3/4)

作成:2013-10-19 08:24
更新:2013-10-19 08:24

■変数と制御用タグの利用

実は、GSPで利用できるタグは、フォーム関連のものばかりではありません。その他にも多数の便利なタグが用意されています。その中でも、変数の利用や制御構文に相当するものなどをまとめて紹介しましょう。


■変数宣言
<g:set var="変数名" value="値">
変数を作成するものです。varで変数名を、valueで値を設定します。これで作成された変数は、これ以後のビューテンプレート内で使われるスクリプトなどで利用することができます。


■条件分岐
<g:if test="条件となるもの">
    ……実行する内容……
</g:if>
<g:else>
    ……実行する内容……
</g:else>
if文に相当するものです。testに真偽値として得られる内容を記述しておくと、それがtrueの場合にのみタグ内の記述が実行されます。ここにタグなどを書いておけば、trueの場合だけ表示されるようになります。

<g:else>は、ifのelse節に相当するもので、<g:if>タグの直後に記述することでtestがfalseだった場合の処理を用意することができます。これはその性格上、単体では使用できません。必ず<g:if>とセットで使います。


■配列の繰り返し
<g:each in="配列など">
    ……実行する処理……
</g:each>
配列やイテレータなどから順に要素を取り出して処理するためのものです。inに配列やイテレータを指定します。取り出された値は、「it」という変数に代入されます。あるいは、「var="変数名"」といった属性を追加して、指定の変数に代入させることもできます。


■条件による繰り返し
<g:while test="条件となるもの">
    ……実行する処理……
</g:while>
while文に相当するものです。testに条件となるものを指定すると、それがtrueの間、タグ内を繰り返し実行します。testの値は変化するものでないと無限ループ状態になるので注意しましょう。

――これらを使った簡単な例を下に掲載しておきます。実行すると、Mapに用意しておいた値を赤と青に色分けしてリスト表示します。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※index.gspのボディ部分

<body>
    <h1>${title}</h1>
    <h2>${msg}</h2>
    <g:set var="arr" value="['One','two','Three','Four','Five','Six']" />
    <ol>
    <g:set var="count" value="${0}" />
    <g:each in="${arr}">
        <g:if test="${count++ % 2 == 0}">
            <span style="color:red;">
        </g:if>
        <g:else>
            <span style="color:blue;">
        </g:else>
        <li>${it}</li>
        </span>
    </g:each>
    </ol>
</body>


※関連コンテンツ

「初心者のためのGroovy/Grails入門」に戻る