Перейти к основному содержимому

Возврат простого HTML из контроллера Spring MVC

· 2 мин. чтения

1. Обзор

В этом руководстве мы хотим посмотреть, как вернуть HTML из контроллера Spring MVC.

Давайте посмотрим, что нужно сделать.

2. Зависимость от Maven

Во- первых, мы должны добавить зависимость Maven spring-boot-starter-web для нашего контроллера MVC:

<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. Вывод

В этой статье мы рассмотрели, как вернуть HTML из контроллера Spring MVC.

Как всегда, образцы кода доступны на GitHub .