1. 概要

このチュートリアルでは、SpringMVCコントローラーからHTMLを返す方法を見ていきたいと思います。

何をする必要があるか見てみましょう。

2. Mavenの依存関係

まず、MVCコントローラーの spring-boot-starter-webMaven依存関係を追加する必要があります。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <versionId>1.3.7.RELEASE</versionId>
</dependency>

3. コントローラ

次に、コントローラーを作成しましょう。

@Controller
public class HtmlController {
    @GetMapping(value = "/welcome", produces = MediaType.TEXT_HTML_VALUE)
    @ResponseBody
    public String welcomeAsHTML() {
        return "<html>\n" + "<header><title>Welcome</title></header>\n" +
          "<body>\n" + "Hello world\n" + "</body>\n" + "</html>";
    }
}

@Controller アノテーションを使用して、このクラスがHTTPリクエストを処理することをDispatcherServletに通知します。

次に、 @GetMapping アノテーションを構成して、MediaType.TEXT_HTML_VALUE出力を生成します。

そして最後に、 @ResponseBody アノテーションは、返されたオブジェクトが構成されたメディアタイプ、つまり TEXT_HTML_VALUE、、またはに自動的にシリアル化される必要があることをコントローラーに通知します。 ] text /html

この最後のアノテーションがないと、 String の戻り値はデフォルトでビュー名を参照するため、404エラーが発生します。

そのコントローラーを配置したら、テストできます。

curl -v localhost:8081/welcome

出力は次のようになります。

> ... request ...
>
< HTTP/1.1 200
< Content-Type: text/html;charset=UTF-8
< ... other response headers ...
<

<html>
<header><title>Welcome</title></header>
<body>
Hello world
</body>
</html>

予想どおり、応答のContent-Typetext/htmlであることがわかります。 さらに、応答にも正しいHTMLコンテンツが含まれていることがわかります。

4. 結論

この記事では、SpringMVCコントローラーからHTMLを返す方法について説明しました。

いつものように、コードサンプルはGitHubから入手できます。