您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# SpringBoot如何访问JSP页面
## 一、前言
在SpringBoot项目中,虽然官方推荐使用Thymeleaf、FreeMarker等模板引擎,但仍有不少传统项目需要集成JSP(JavaServer Pages)。本文将详细介绍如何在SpringBoot 2.x/3.x中配置和访问JSP页面,并解决常见问题。
## 二、环境准备
### 1. 创建SpringBoot项目
通过Spring Initializr创建项目时需注意:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 必须添加tomcat-embed-jasper -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
src/
├── main/
│ ├── java/
│ ├── resources/
│ └── webapp/ # 必须使用此目录名
│ └── WEB-INF/
│ └── views/ # JSP存放目录
在application.properties
中添加:
# JSP配置
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
# 开发时关闭缓存
spring.mvc.servlet.load-on-startup=1
server.servlet.jsp.init-parameters.development=true
若需要自定义配置,可创建配置类:
@Configuration
public class JspConfig implements WebMvcConfigurer {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
}
@Controller
public class HomeController {
@GetMapping("/hello")
public String hello(Model model) {
model.addAttribute("message", "Hello JSP!");
return "hello"; // 对应/WEB-INF/views/hello.jsp
}
}
@GetMapping("/user")
public String userInfo(Model model) {
User user = new User("张三", 25);
model.addAttribute("user", user);
return "user";
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>SpringBoot JSP</title>
</head>
<body>
<h1>${message}</h1>
<p>当前时间:<%= new java.util.Date() %></p>
</body>
</html>
需额外添加依赖:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
示例JSP:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach items="${users}" var="user">
<p>${user.name} - ${user.age}</p>
</c:forEach>
webapp
目录位置正确application.properties
配置# 添加编译配置
server.tomcat.additional-tld-skip-patterns=*.jar
需要额外添加依赖:
<dependency>
<groupId>jakarta.servlet.jsp.jstl</groupId>
<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
<version>2.0.0</version>
</dependency>
mvn tomcat7:jspc
spring.mvc.servlet.load-on-startup=0
server.servlet.jsp.init-parameters.development=false
server.compression.enabled=true
server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript
虽然SpringBoot官方不推荐使用JSP,但在迁移传统项目时仍是必要技术。关键点包括: 1. 正确的依赖配置(tomcat-embed-jasper) 2. 严格的目录结构(webapp/WEB-INF) 3. 完善的视图解析配置 4. 针对不同SpringBoot版本的适配
建议新项目优先考虑Thymeleaf等现代模板引擎,但掌握JSP集成方案对于维护老系统至关重要。
注意:SpringBoot 3.x需使用Jakarta EE 9+的命名空间(jakarta.servlet代替javax.servlet) “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。