前言
话说,Spring Boot官方不建议使用jsp,更多提倡使用模板,所以在resource下有个template文件夹。
回归正题,笔者最开始也是到处百度,但都是不是不全就是不能解决问题,启动始终404或500
终于在stackoverflow上一个采纳回答给了笔者灵感
并对网上的资料进行整理和亲测,并整理出八步,按照步骤来绝对能解决你的困惑(全网最全且最管用),相信我!
环境:IDEA + Spring Boot + Maven + Jsp
转载请标记出处:https://blog.csdn.net/double7z/article/details/83721505
一、pom.xml需要引入依赖
注意:使用Idea工具 tomcat.embed这个依赖的provided需要注释,eclipse不需要注释
<!-- 使用 jsp 必要依赖 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!--<scope>provided</scope>-->
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0-alpha-1</version>
<!--<scope>provided</scope>-->
</dependency>
二、创建Controller
//注意:需要使用Controller
@Controller
public class JspController {
@RequestMapping("/helloJsp")
public String helloJsp(Map<String, Object> map) {
System.out.println("Hello,JSP");
return "index";
}
}
以上都是铺垫,下边才是重点
三、application配置
properties
# 页面默认前缀目录
spring.mvc.view.prefix=/WEB-INF/views/
# 响应页面默认后缀
spring.mvc.view.suffix=.jsp
yml
spring:
mvc:
view:
prefix: /WEB_INF/views/
suffix: .jsp
四、增加web
1.(idea工具的项目结构位置)File>>Project Structure 然后点击左侧Modules,再点击上方绿色加号增加Web
这时确定后,会发现左侧项目结构里会出现一个web的文件夹
接下来把这个web文件夹挪到 src/main下,同resources同级,并且重新命名为webapp,如下图结构
为什么需要重新命名?这个是能否启动的重要原因,请查看Maven官方结构。如果不重名启动时会找不到jsp位置(笔者亲测)
五、修改web位置
根据下图把路径修改为指向刚才修改的webapp文件夹
六、创建jsp页面
自行在webapp/WEB_INF/views/ 下创建jsp页面,命名 index.jsp(和以上目录配置对应,老手可快速略过)
七、启动
直接Application或使用maven命令 mvn spring-boot:run
查了很多资料说只能使用spring boot run启动,但是经过笔者多次试验,按照以上方法,完全可以直接application启动
多个module时可配置application参数 $MODULE_WORKING_DIR$(有时间可自测),见下图:
八、见证奇迹
访问 http://localhost:8080/helloJsp