springboot如何返回html和jsp

1. 引言

Spring Boot 是一个非常流行且易于使用的开发框架,尤其是在构建 Web 应用程序时。在这篇文章中,我们将探讨如何使用 Spring Boot 构建一个返回 HTML 和 JSP 的 Web 应用程序。

2. 返回 HTML

2.1 步骤

要返回 HTML,我们需要在控制器方法中使用 @Controller 注解,以告诉 Spring Boot 这是一个控制器。

我们还需要指定要返回的 HTML 文件的名称和路径。为此,我们可以使用 ModelAndView 对象。

以下是一个返回 HTML 的例子:

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.ModelAndView;

@Controller

public class HtmlController {

@RequestMapping("/")

public ModelAndView index() {

return new ModelAndView("index.html");

}

}

在上述示例中,访问根 (/) 路径将返回名为 index.html 的 HTML 文件。

2.2 HTML 文件的位置

按照惯例,Spring Boot 将在 /templates 目录中查找 HTML 文件。因此,我们需要将 HTML 文件放在该目录下。

例如,如果我们想返回 index.html,则需要将该文件放在 /templates/index.html 路径下。

2.3 使用 Thymeleaf 模板引擎

Thymeleaf 是一个非常流行的模板引擎,它可以轻松地与 Spring Boot 集成。

首先,我们需要在 pom.xml 文件中添加以下依赖项:

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>

现在,我们需要在控制器中使用 @GetMapping 注解以返回 Thymeleaf 视图。以下是一个示例控制器:

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.GetMapping;

@Controller

public class ThymeleafController {

@GetMapping("/")

public String index(Model model) {

model.addAttribute("message", "Hello World!");

return "index";

}

}

在上述示例中,我们使用 Model.addAttribute() 方法将一个名为 message 的属性添加到模型中。然后我们返回名为 index 的 Thymeleaf 视图。

接下来,我们需要创建 index.html 文件并将其保存在 /src/main/resources/templates/ 目录中。以下是一个使用 Thymeleaf 的示例:

<!DOCTYPE html>

<html xmlns:th="http://www.thymeleaf.org">

<head>

<meta charset="UTF-8">

<title>Hello World</title>

</head>

<body>

<h1>[[${message}]]</h1>

</body>

</html>

在上述示例中,我们使用了 Thymeleaf 的表达式语言语法来显示属性 message 的值。

3. 返回 JSP

3.1 步骤

要返回 JSP,我们需要在控制器方法中使用 @Controller 注解,并返回 JSP 文件的名称。

以下是一个返回 JSP 的例子:

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller

public class JspController {

@RequestMapping("/")

public String index() {

return "index.jsp";

}

}

在上述示例中,访问根 (/) 路径将返回名为 index.jsp 的 JSP 文件。

3.2 JSP 文件的位置

按照惯例,Spring Boot 将在 /WEB-INF/views/ 目录中查找 JSP 文件。因此,我们需要将 JSP 文件放在该目录下。

例如,如果我们想返回 index.jsp,则需要将该文件放在 /WEB-INF/views/index.jsp 路径下。

3.3 添加 JSP 支持

默认情况下,Spring Boot 不支持 JSP。因此,我们需要在 pom.xml 文件中添加以下依赖项:

<dependency>

<groupId>org.apache.tomcat.embed</groupId>

<artifactId>tomcat-embed-jasper</artifactId>

<scope>provided</scope>

</dependency>

现在,我们需要在 application.properties 文件中添加以下配置:

spring.mvc.view.prefix=/WEB-INF/views/

spring.mvc.view.suffix=.jsp

在上述示例中,我们告诉 Spring Boot,JSP 文件的前缀为 /WEB-INF/views/,后缀为 .jsp

现在,我们就可以轻松地使用 JSP 文件了。

3.4 使用 JSTL

JSTL(JSP Standard Tag Library)是一个轻量级的标记库,它可以使 JSP 编写更具可读性和可维护性。

要使用 JSTL,我们需要添加以下依赖项到 pom.xml 文件中:

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

接下来,我们需要在 JSP 文件中声明 JSTL 标记库,例如:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

现在,我们就可以在 JSP 文件中使用 JSTL 标记库了。以下是一个使用 JSTL 的示例:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Hello World</title>

</head>

<body>

<c:if test="${empty message}">

<h1>Hello World!</h1>

</c:if>

<c:if test="${not empty message}">

<h1>${message}</h1>

</c:if>

</body>

</html>

在上述示例中,我们使用了 JSTL 的条件标记,根据模型中是否包含 message 属性来显示不同的信息。

4. 结论

通过本文,我们已经了解了如何使用 Spring Boot 返回 HTML 和 JSP。我们讨论了如何使用 Thymeleaf 和 JSTL,并对如何指定 HTML 文件和 JSP 文件的位置进行了说明。在您的下一个 Spring Boot 项目中,您可以使用这些知识来构建出色的 Web 应用程序。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。