テンプレートの利用 (1/6)
作成:2014-06-08 09:28
更新:2014-06-08 09:28
更新:2014-06-08 09:28
■@Controllerを使う
前回、ごくごくシンプルなWebアプリのスクリプトを書きました。これはこれで簡単に作れていいのですが、ちょっと気になる点があります。それは「@RestControllerを使う」という点です。これは名前からしてRESTfulなサービスを作るのに用意されているもの、という感じがしますね(実際そうですが)。もっと普通のコントローラーはないのでしょうか。
実は、あります。「@Controller」というものです。これがSpring MVCのコントローラーを作成する際の基本となるアノテーション、といってよいでしょう。では、これを実際に使ってみましょう。
前回作成したapp.groovyを、下のリスト欄のように書き換えてみてください。そしてspring runコマンドで実行してみましょう。前回と同じように、ごくシンプルなものですがHTMLによるWebページが表示されます。
ここでは、クラスのアノテーションが@RestControllerから@Controllerに変わっています。それにくわえてもう1つ、変わっているところがあります。メソッドに、新たに「@ResponseBody」というアノテーションが追加になっていますね。
これは、Webのレスポンスボディを持つものであることを示すアノテーションです。要するに、このメソッドにアクセスしたら、レスポンスが返るよ、ということを指定していたのですね。
前回の@RestControllerは、なぜいらなかったのか? それは、@RestControllerは、@Cotroller + @ResponseBodyの役割を果たすものだったからです。だから不要だったんですね。
(※正確には、@RestController = @Controller + @ResponseBodyではありません。@RestControllerには、@Controllerに含まれる@Componentがありません。両者は微妙に違うものなんです。なので、@RestController ∋ @Controllerというわけではありません。が、まぁだいたい「@Controllerに@ResponseBodyを足したものが@RestControllerだ」と思っていいでしょう)
実は、あります。「@Controller」というものです。これがSpring MVCのコントローラーを作成する際の基本となるアノテーション、といってよいでしょう。では、これを実際に使ってみましょう。
前回作成したapp.groovyを、下のリスト欄のように書き換えてみてください。そしてspring runコマンドで実行してみましょう。前回と同じように、ごくシンプルなものですがHTMLによるWebページが表示されます。
ここでは、クラスのアノテーションが@RestControllerから@Controllerに変わっています。それにくわえてもう1つ、変わっているところがあります。メソッドに、新たに「@ResponseBody」というアノテーションが追加になっていますね。
これは、Webのレスポンスボディを持つものであることを示すアノテーションです。要するに、このメソッドにアクセスしたら、レスポンスが返るよ、ということを指定していたのですね。
前回の@RestControllerは、なぜいらなかったのか? それは、@RestControllerは、@Cotroller + @ResponseBodyの役割を果たすものだったからです。だから不要だったんですね。
(※正確には、@RestController = @Controller + @ResponseBodyではありません。@RestControllerには、@Controllerに含まれる@Componentがありません。両者は微妙に違うものなんです。なので、@RestController ∋ @Controllerというわけではありません。が、まぁだいたい「@Controllerに@ResponseBodyを足したものが@RestControllerだ」と思っていいでしょう)
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
@Controller class MyBootApp { @RequestMapping("/") @ResponseBody def top() { "<html><body><h1>Hello</h1><p>it's @Controller annotation sample!</p></body></html>"; } }
※関連コンテンツ
「初心者のためのSpring Bootプログラミング入門」に戻る