Thymeleafテンプレートエンジンの主な機能 (1/4)
作成:2015-05-02 08:47
更新:2015-05-02 08:47
更新:2015-05-02 08:47
■選択変数式とリンク式
Thymeleafには、一般的な変数式として${○○}といった形の書き方(変数式)が用意されています。が、この他にもさまざまな書き方が用意されています。以下に簡単にまとめておきましょう。
●選択変数式 *{}
これは、オブジェクトの中にあるプロパティ(フィールド)を取り出すためのものです。あらかじめ「th:object」という属性にオブジェクトを設定しておくと、そのタグ内では、オブジェクト内のプロパティ名を*{○○}という形で指定することで値を取り出せます。
●リンク式 @{}
リンクのURLを生成するためのものです。これは<a>タグなどに、th:hrefという属性を用意して記述するのに使うのが一般的です。
では、これらの簡単な例を上げておきましょう。下にコントローラーのメソッドとテンプレートのタグの例を挙げておきます。ここでは、前回使ったDataクラスを利用しています。name, tel, mailといったフィールドをもったデータ保管用のクラスですね。
ここでは、Dataインスタンスをdataという名前で渡しています。そしてテンプレート側で、<ol>タグにth:object="${data}"としてdataインスタンスをオブジェクトに設定しています。すると、この<ol>タグの内部にある<li>タグでは、th:text="*{name}"というようにして、nameフィールドの値を取り出すことができるようになります。
リンクの方は、<a>タグにth:href="@{http://google.com/}"という形で属性を用意することで、hrefにgoogl.comのURLが設定されます。これだけ見ると「何が便利なんだ?」と思うでしょう。
リンク式が役立つのは、URLにパラメータなどを設定するようになった場合です。@{}内部でも、変数式などを書いて変数を埋め込むことができます。この際、変数で設定される値は、自動的にURLエンコードされてURLとして生成されるのです。
●選択変数式 *{}
これは、オブジェクトの中にあるプロパティ(フィールド)を取り出すためのものです。あらかじめ「th:object」という属性にオブジェクトを設定しておくと、そのタグ内では、オブジェクト内のプロパティ名を*{○○}という形で指定することで値を取り出せます。
●リンク式 @{}
リンクのURLを生成するためのものです。これは<a>タグなどに、th:hrefという属性を用意して記述するのに使うのが一般的です。
では、これらの簡単な例を上げておきましょう。下にコントローラーのメソッドとテンプレートのタグの例を挙げておきます。ここでは、前回使ったDataクラスを利用しています。name, tel, mailといったフィールドをもったデータ保管用のクラスですね。
ここでは、Dataインスタンスをdataという名前で渡しています。そしてテンプレート側で、<ol>タグにth:object="${data}"としてdataインスタンスをオブジェクトに設定しています。すると、この<ol>タグの内部にある<li>タグでは、th:text="*{name}"というようにして、nameフィールドの値を取り出すことができるようになります。
リンクの方は、<a>タグにth:href="@{http://google.com/}"という形で属性を用意することで、hrefにgoogl.comのURLが設定されます。これだけ見ると「何が便利なんだ?」と思うでしょう。
リンク式が役立つのは、URLにパラメータなどを設定するようになった場合です。@{}内部でも、変数式などを書いて変数を埋め込むことができます。この際、変数で設定される値は、自動的にURLエンコードされてURLとして生成されるのです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※コントローラー皮の処理 @RequestMapping("/helo") public Model helo(Model model) { Data data = new Data("Taro","taro@yamada","090-999-999"); model.addAttribute("data",data); return model; } ※テンプレート側の記述 <ol th:object="${data}"> <li th:text="*{name}" /> <li th:text="*{mail}" /> <li th:text="*{tel}" /> </ol> <p> <a th:href="@{http://google.com/}">link</a> </p>
※関連コンテンツ
「初心者のためのSpring Bootプログラミング入門」に戻る