在Spring Boot中,默认情况下不支持JSP作为视图模板引擎,因为Spring Boot更倾向于使用Thymeleaf、Freemarker等现代模板引擎。然而,如果你确实需要使用JSP,可以通过一些配置来实现。
以下是一个完整的示例,演示如何在Spring Boot中使用JSP,并实现控制器重定向到JSP页面。
首先,创建一个新的Spring Boot项目。你可以使用Spring Initializr来生成项目结构。
在 pom.xml
文件中添加JSP相关的依赖:
<dependencies>
<!-- Spring Boot Starter Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- JSP support -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
</dependencies>
在 src/main/resources/application.properties
文件中添加以下配置:
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
在 src/main/webapp/WEB-INF/jsp/
目录下创建一个名为 example.jsp
的文件:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Example JSP Page</title>
</head>
<body>
<h1>Hello, this is an example JSP page!</h1>
</body>
</html>
在 src/main/java/com/example/demo/
目录下创建一个控制器类:
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class ExampleController {
@GetMapping("/redirect")
public String redirect() {
return "redirect:/example";
}
@RequestMapping("/example")
public String example() {
return "example";
}
}
在这个示例中,/redirect
路径会重定向到 /example
,而 /example
路径会返回 example.jsp
页面。
运行Spring Boot应用,你可以在浏览器中访问 http://localhost:8080/redirect
,它会重定向到 http://localhost:8080/example
并显示 example.jsp
页面。
领取专属 10元无门槛券
手把手带您无忧上云