libro
www.tuyano.com
初心者のためのSpring Bootプログラミング入門

Thymeleafテンプレートエンジンの主な機能 (3/4)

作成:2015-05-02 08:52
更新:2015-05-02 08:52

■条件式と繰り返し式

Thymeleafでは、ごく簡単な構文式をもっており、これを使うことで複雑な値の表現を簡単に記述し処理できます。中でももっとも重要なのが「条件式」と「繰り返し式」でしょう。

●条件式
${変数} ? 真の値 : 偽の値
条件式は、Javaの三項演算子と基本的に同じものです。最初に真偽値の変数を用意し、の後にtrue時の値を、の後にはfalse時の値をそれぞれ用意してやります。これで変数の値がtrueかfalseかによって異なる値を表示させることができるようになります。

●繰り返し
th:each="変数名 : ${コレクション}"
これは、配列などから順に値を取り出し処理するのに用いられます。th:eachでは、${}に用意した変数やコレクションから順に値を取り出して変数に収める、といったことを行います。このタグの内部で、取り出した変数を利用することができます。繰り返す回数だけ、このth:eachを用意したタグが繰り返し出力されることになります。


これも、実際の利用例を挙げておきましょう。これは、コントローラー側で値を用意し、それをもとにテンプレート側で表示を行います。

条件式は、th:text="${flg} ? 'TRUE is selected.' : 'oh no!'" という形で記述しています。これにより、変数flgの値がtrueであれば「TRUE is selected.」と、falseならば「oh no!」と表示されるようになります。

繰り返しは、<table>内の<tr>タグに用意してあります。th:each="data : ${datas}"とすることで、変数datasから値を取り出しては変数dataに設定する、ということを繰り返しながら<tr>タグが何度も出力されていくことになります。この<tr>タグの中にある<td>タグでは、取り出した変数を${data}という形で出力しています。このように繰り返し式は、テーブルやリストなどの表示を作成するのに重宝するでしょう。

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

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

●プログラム・リスト●

※コントローラーのメソッド

@RequestMapping("/helo")
public Model helo(Model model) {
    model.addAttribute("flg",true);
    model.addAttribute("datas",new String[]{"One","Two","Three"});
    return model;
}

※テンプレートのタグ

<p th:text="${flg} ? 'TRUE is selected.' : 'oh no!'" />
<table border="1">
    <tr th:each="data : ${datas}">
        <td th:text="${data}" />
    </tr>
</table>

※関連コンテンツ

「初心者のためのSpring Bootプログラミング入門」に戻る