バックスラッシュによるエスケープ + #if 条件分岐構文
1. バックスラッシュ \ エスケープルール
事前定義変数:#set($dog = "woof woof")
| VTLコード | 出力結果 | 仕様解説 |
|---|---|---|
$dog | woof woof | 変数を通常通り展開 |
\$dog | $dog | バックスラッシュ1つ:直後の$をエスケープ、変数展開を無効にし文字通り出力 |
\\$dog | \woof woof | 1つ目の\が2つ目の\をエスケープ→\を出力;残りの $dogは変数展開される |
\\\$dog | \$dog | \\で\出力、\$で$出力 |
\\\\$dog | \woof woof | \\が\、\\が\を出力;$dogが変数展開 |
- Velocityの変数名は文字から始める必要があり、
$10.0は変数と認識されずそのまま出力。マイクロソフト$10.0ドルのような記述にはエスケープ不要; - 連続するバックスラッシュは2つごとに相殺;
\$の組み合わせだけがドル記号をエスケープ可能; - ページ上に
$変数名をそのまま表示するには標準で\$dogを使う。
2. #if による条件分岐構文
#set($ages = 22)
#if ($ages <13)
<h1>あなたは子供です</h1>
#elseif ($ages <18)
<h1>あなたは少年です</h1>
#elseif ($ages <35)
<h1>あなたは青年です</h1>
#elseif ($ages <60)
<h1>あなたは中年です</h1>
#else
<h1>あなたは高齢者です</h1>
#endCode language: PHP (php)
実行結果
$ages=22、条件 22 < 35 に該当 → 出力:<h1>あなたは青年です</h1>
注意点
- ブロック終端には必ず
#endを記述。省略すると構文エラー; - キーワード:
#elseif(#else if と空白を入れてはいけません、これは不正な書き方); - 条件で利用可能:
< > <= >= == != && ||などの演算子; - 上から順に判定し、最初に条件成立した分岐だけ実行、以降の分岐は実行されない。
エスケープとif条件
Previous: 拡張メソッド