SpringBoot集成JSP
2022年12月24日约 424 字大约 1 分钟
SpringBoot集成JSP
1. 项目集成
添加依赖
<!-- jsp --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <!-- <scope>provided</scope>--> </dependency>
切记要注释掉
<scope>provided</scope>
,网上很多教程都添加了该字段,最终导致用springboot main方法启动,访问一直404。修改配置文件
在
application.properties
配置文件中添加jsp相关配置:spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp
创建jsp文件
在
src/main
下创建webapp/WEB-INF/jsp
文件夹。创建的webapp会有个小蓝点的特殊标识。如没有请配置
在
jsp
文件夹下创建index.jsp
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Hello</title> </head> <body> Hello,${name} </body> </html>
创建controller
@Controller @RequestMapping("/") public class IndexController { @GetMapping("/") public String index(Model model){ model.addAttribute("name", "jsp测试"); return "index"; } }
启动服务
以SpringBoot 的方式启动(大部分项目都以这种方式启动,所以移除
<scope>provided</scope>
)@SpringBootApplication public class JspDemoApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 注意这里要指向原先用main方法执行的Application启动类 return builder.sources(JspDemoApplication.class); } public static void main(String[] args) { SpringApplication.run(JspDemoApplication.class, args); } }
通过spring-boot:run启动服务,idea里直接双击即可:
2. 常见问题
2.1 webapp 没有标识
参考如下图配置
2.2 JSP访问404
引入依赖时 <scope>provided</scope>
没有注释掉,IntelliJ IDEA不会将的依赖注入到类路径中,
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!-- <scope>provided</scope>-->
</dependency>
参考文章
Powered by Waline v2.9.1