テンプレートの利用 (3/6)
作成:2014-06-08 09:33
更新:2014-06-08 09:33
更新:2014-06-08 09:33
■ModelAndViewにテンプレートを設定する
では、app.groovyのスクリプトを書き換えましょう。下のリスト欄のように変更して下さい。書き換えたら、spring runコマンドで実行し、表示を確かめましょう。 http://localhost:8080/ にアクセスすると、用意したindex.htmlテンプレートの内容が表示されますよ。
今回は、いろいろと変わった点があります。これらについて整理していきましょう。
●@Grabでライブラリをロードする
一番最初に、@Grabという文が追加されていますね。以下のものです。
●ModelAndViewを引数に指定する
リクエストマッピングされたtopメソッドでは、引数が渡されるように変更されました。
●テンプレートを設定する
メソッドの中では、ModelAndViewにテンプレートを設定しています。以下の部分です。
「ビュー」というのは、いろいろなものが利用されるのですが、ここではThymeleafテンプレートエンジンをロードしていますので、設定した"index"はThymeleafのテンプレート(templates/index.html)と認識されます。
後は、このModelAndViewをそのままreturnすれば、それをもとにビュー(画面の表示部分)が生成されクライアント側に送られる、というわけです。
今回は、いろいろと変わった点があります。これらについて整理していきましょう。
●@Grabでライブラリをロードする
一番最初に、@Grabという文が追加されていますね。以下のものです。
@Grab("thymeleaf-spring4")これは、"thymeleaf-spring4"というモジュールをロードするためのものです。Groovyでは、モジュールと呼ばれるライブラリのようなものを組み込んで機能を増やしていくことができます。ここではthymeleafを利用するためのモジュールを最初に読み込んでいたのです。
●ModelAndViewを引数に指定する
リクエストマッピングされたtopメソッドでは、引数が渡されるように変更されました。
def top(ModelAndView mv) {……
この「ModelAndView」は、Spring MVCの機能で、「ビュー」(画面表示を扱うためのオブジェクト)と「モデル」(ビューと値をやりとりするためのオブジェクト)をまとめて扱うためのクラスです。引数にこのModelAndViewインスタンスを受け取るように指定することで、ビューの情報をまとめて利用できるようにしています。●テンプレートを設定する
メソッドの中では、ModelAndViewにテンプレートを設定しています。以下の部分です。
mv.setViewName("index")このsetViewNameは、名前の通り、ビューの名前を設定するためのものです。ここで"index"と指定することで、indexという名前のビューが使われるようになります。
「ビュー」というのは、いろいろなものが利用されるのですが、ここではThymeleafテンプレートエンジンをロードしていますので、設定した"index"はThymeleafのテンプレート(templates/index.html)と認識されます。
後は、このModelAndViewをそのままreturnすれば、それをもとにビュー(画面の表示部分)が生成されクライアント側に送られる、というわけです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
@Grab("thymeleaf-spring4") @Controller class MyBootApp { @RequestMapping("/") @ResponseBody def top(ModelAndView mv) { mv.setViewName("index") mv } }
※関連コンテンツ
「初心者のためのSpring Bootプログラミング入門」に戻る