PC | mobile ver.20170108.

 libro ~入門ドキュメント・サイト~

Spring BootではじめるMVCアプリケーション高速開発入門:

テンプレートの利用 (1/6)

作成: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だ」と思っていいでしょう)



 

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

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ではじめるMVCアプリケーション高速開発入門」に戻る



※その他のコンテンツ