1. 概述
本教程將探討如何從 Spring MVC 控制器返回 HTML。
讓我們來了解需要完成的工作。
2. Maven 依賴
首先,我們需要添加 spring-boot-starter-web Maven 依賴,用於我們的 MVC 控制器:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<versionId>3.1.5</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 註解來告知 DispatcherServlet 該類處理 HTTP 請求。
接下來,我們配置 @GetMapping 註解以產生 MediaType.TEXT_HTML_VALUE 輸出。
最後,@ResponseBody 註解告訴控制器,返回的對象應自動序列化為配置的媒體類型,即 TEXT_HTML_VALUE 或 text/html。
如果沒有這個最後一次註解,我們將會收到 404 錯誤,因為 String 返回值默認是指視圖名稱。
有了這個控制器,我們就可以進行測試:
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. 結論
在本文中,我們探討了如何從 Spring MVC 控制器中返回 HTML。