GSPのカスタムタグを使おう (3/4)
作成:2013-10-19 08:24
更新:2013-10-19 08:24
更新:2013-10-19 08:24
■変数と制御用タグの利用
実は、GSPで利用できるタグは、フォーム関連のものばかりではありません。その他にも多数の便利なタグが用意されています。その中でも、変数の利用や制御構文に相当するものなどをまとめて紹介しましょう。
■変数宣言
■条件分岐
<g:else>は、ifのelse節に相当するもので、<g:if>タグの直後に記述することでtestがfalseだった場合の処理を用意することができます。これはその性格上、単体では使用できません。必ず<g:if>とセットで使います。
■配列の繰り返し
■条件による繰り返し
――これらを使った簡単な例を下に掲載しておきます。実行すると、Mapに用意しておいた値を赤と青に色分けしてリスト表示します。
■変数宣言
<g:set var="変数名" value="値">変数を作成するものです。varで変数名を、valueで値を設定します。これで作成された変数は、これ以後のビューテンプレート内で使われるスクリプトなどで利用することができます。
■条件分岐
<g:if test="条件となるもの">if文に相当するものです。testに真偽値として得られる内容を記述しておくと、それがtrueの場合にのみタグ内の記述が実行されます。ここにタグなどを書いておけば、trueの場合だけ表示されるようになります。
……実行する内容……
</g:if>
<g:else>
……実行する内容……
</g:else>
<g:else>は、ifのelse節に相当するもので、<g:if>タグの直後に記述することでtestがfalseだった場合の処理を用意することができます。これはその性格上、単体では使用できません。必ず<g:if>とセットで使います。
■配列の繰り返し
<g:each in="配列など">配列やイテレータなどから順に要素を取り出して処理するためのものです。inに配列やイテレータを指定します。取り出された値は、「it」という変数に代入されます。あるいは、「var="変数名"」といった属性を追加して、指定の変数に代入させることもできます。
……実行する処理……
</g:each>
■条件による繰り返し
<g:while test="条件となるもの">while文に相当するものです。testに条件となるものを指定すると、それがtrueの間、タグ内を繰り返し実行します。testの値は変化するものでないと無限ループ状態になるので注意しましょう。
……実行する処理……
</g:while>
――これらを使った簡単な例を下に掲載しておきます。実行すると、Mapに用意しておいた値を赤と青に色分けしてリスト表示します。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
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>
※関連コンテンツ