Spring Boot默认不支持JSP(JavaServer Pages),但仍然可以通过一些配置来让Spring Boot支持JSP。
首先,确保在项目的pom.xml文件中添加以下依赖:
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>9.0.52</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
接下来,需要在application.properties文件中进行配置:
# 指定JSP文件的目录
spring.mvc.view.prefix=/WEB-INF/jsp/
# 指定JSP文件的后缀
spring.mvc.view.suffix=.jsp
# 禁用JSP的缓存,方便调试
spring.mvc.view.expose-request-attributes=true
spring.mvc.view.expose-session-attributes=true
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
然后,创建一个@Controller类,用于处理请求:
@Controller
public class JspController {
@RequestMapping("/hello")
public String hello(Model model) {
model.addAttribute("message", "Hello JSP");
return "hello";
接着,在webapp/WEB-INF/jsp目录下创建一个hello.jsp文件:
<!DOCTYPE html>
<title>Hello JSP</title>
</head>
<h1>${message}</h1>
</body>
</html>
最后,运行Spring Boot应用程序并访问http://localhost:8080/hello,即可看到JSP页面显示"Hello JSP"。
需要注意的是,Spring Boot推荐使用模板引擎(如Thymeleaf、Freemarker)来替代JSP,因为JSP在一些最新的Servlet容器中可能不被支持或不被推荐使用。
Spring Boot 默认是不支持 JSP 的,但是可以通过一些配置来实现对 JSP 的支持。
以下是实现 Spring Boot 对 JSP 的支持的步骤:
添加 Maven 依赖:
在 pom.xml 文件中添加以下依赖项:
<dependencies>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
</dependencies>
这些依赖项可以使 Spring Boot 集成 Apache Tomcat,并且添加对 JSTL(JSP 标准标记库)的支持。
配置视图解析器:
在 application.properties(或 application.yml)文件中添加以下配置:
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
这里指定了 JSP 文件的前缀和后缀。
创建 JSP 页面:
在 src/main/webapp/WEB-INF/jsp/ 目录下创建 JSP 页面。可以使用任何 JSP 支持的语法和标签。
创建控制器:
在 Spring Boot 的控制器中,使用 @Controller 注解指定该类是一个控制器,并使用 @RequestMapping 注解指定请求的 URL。
例如:
@Controller
public class HomeController {
@RequestMapping("/")
public String home() {
return "home"; // 返回对应的 JSP 页面名称
在上述例子中,当访问根路径("/")时,将会返回名为 "home" 的 JSP 页面。
运行应用程序:
使用 main 方法运行 Spring Boot 应用程序。访问指定的 URL(根据控制器中的 @RequestMapping 注解),将会自动解析并显示 JSP 页面。
需要注意的是,Spring Boot 的内嵌 Tomcat 容器使用的是嵌入式的 JSP 引擎 Jasper,而不是传统的 JSP 容器。因此,我们需要将 tomcat-embed-jasper
设置为 provided scope,以避免打包进 WAR 文件中。而 jstl
依赖则提供了 JSTL 标签库的支持。
另外,还需要确保在 src/main/webapp
目录下创建 WEB-INF 目录,并将 JSP 页面放置在其中。这是因为 JSP 规范要求 WEB-INF 目录内的内容不能直接访问,只能通过控制器间接访问。
综上所述,以上就是在 Spring Boot 中实现对 JSP 的支持的步骤。通过配置视图解析器和创建相应的控制器,即可在 Spring Boot 项目中使用 JSP 页面。
Spring Boot是一个开源的Java框架,旨在简化Java应用程序的开发。虽然Spring Boot本身不直接支持JSP(JavaServer Pages),但我们可以通过配置和引入其他的依赖来启用JSP支持。
下面是一些步骤来启用Spring Boot对JSP的支持:
引入相关依赖:
在您的Spring Boot项目的pom.xml文件中,添加以下依赖:
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
这些依赖会将Apache Tomcat的Jasper引擎和JSTL(JavaServer Pages标准标签库)添加到项目中。
配置视图解析器:
在您的Spring Boot项目的application.properties或application.yml文件中,添加以下配置:
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
这些配置将告诉Spring Boot查找以.jsp为后缀的文件,并将它们解析为JSP视图。
创建JSP文件:
在src/main/webapp/WEB-INF/jsp/目录下创建你的JSP文件。
创建控制器:
在您的Spring Boot应用程序中创建一个控制器类,用于处理和返回JSP视图。
@Controller
public class JspController {
@GetMapping("/jsp")
public String jspPage() {
return "page";
这是一个简单的示例,当访问/jsp路径时,将返回名为"page"的JSP视图。
运行应用程序:
编译和运行您的Spring Boot应用程序。您可以使用mvn命令或您喜欢的IDE来完成。
现在,您可以通过访问http://localhost:8080/jsp来查看您的JSP页面。
总结:
尽管Spring Boot默认不支持JSP,但我们可以通过配置和引入相关依赖来启用JSP支持。配置视图解析器和创建JSP文件之后,我们可以使用控制器类来处理和返回JSP视图。