从Spring MVC控制器返回纯HTML

2023/05/19

1. 概述

在本教程中,我们想看看如何从Spring MVC控制器返回HTML。

让我们来看看需要做什么。

2. Maven依赖

首先,我们必须为我们的MVC控制器添加spring-boot-starter-web Maven依赖项:

<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注解来告诉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。

与往常一样,本教程的完整源代码可在GitHub上获得。

Show Disqus Comments

Post Directory

扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章