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-Typeはtext/htmlであることがわかります。 さらに、応答にも正しいHTMLコンテンツが含まれていることがわかります。
4. 結論
この記事では、SpringMVCコントローラーからHTMLを返す方法について説明しました。
いつものように、コードサンプルはGitHubでから入手できます。