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

Thymeleafテンプレートエンジンを使う (3/4)

作成:2015-04-25 10:27
更新:2015-04-25 10:31

■コントローラーを修正する

では、コントローラーを修正しましょう。今回も、先に作成したSampleControllerを書き換えて使うことにしましょう。下のリスト欄のようにソースコードを変更して下さい。

変更が終わったら、実際にプロジェクトを実行し、http://localhost:8080/helo にアクセスしてみましょう。「Helo Page」というタイトルの下に、コントローラー側から渡したテキストが表示されます。

ここではheloメソッドに処理を用意していますね。このメソッドでは、引数にModelインスタンスが渡されるようになっています。そしてaddAttribute"msg"に値を設定しています。このmsgが、そのままテンプレート側の${msg}の変数に渡され出力される、というわけです。

基本的な仕組みは、JSP利用の場合とまったく同じです。Thymeleafに変わったからといって新たに覚え直すことは特にありません。


■ModelAndViewを利用する場合

先にGroovyを利用した際には、コントローラー側で「ModelAndView」というクラスを引数に使っていました。これも、もちろんJavaのコントローラーでも使うことができます。下に、メソッドの変更例を挙げておきましょう。
@RequestMapping("/helo")
public ModelAndView helo(ModelAndView mav) {
    mav.setViewName("helo");
    mav.addObject("msg","これはThymeleafを使ったサンプルです。");
    return mav;
}

ModelAndViewは、その名前の通り、ビューとやり取りする値を管理するModelクラスと、ビューであるViewクラスを合体させたようなものです。これ1つで、ビューとして利用するテンプレートと、それに渡すデータ類をまとめて管理することができます。ここでは、こんなメソッドを使っていますね。

setViewName――使用するビューテンプレートの名前を設定します。
addObject――名前をつけてオブジェクトを保管します。addAttributeに変わるものです。

とりあえず、この2つを覚えておけば基本的な利用はできるようになるでしょう。ModelModelAndView、どちらも使えるようにしておくとよいでしょう。

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

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

●プログラム・リスト●

package com.tuyano.libro.bootapp;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class SampleController {

    @RequestMapping("/helo")
    public String helo(Model model) {
        model.addAttribute("msg","これはThymeleafを使ったサンプルです。");
        return "helo";
    }
}


// ※ModelAndViewを利用する場合
// import org.springframework.web.servlet.ModelAndView; を追加

@RequestMapping("/helo")
public ModelAndView helo(ModelAndView mav) {
    mav.setViewName("helo");
    mav.addObject("msg","これはThymeleafを使ったサンプルです。");
    return mav;
}

※関連コンテンツ

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