由于SpringBoot官方推荐使用模板引擎开发,所以默认对jsp并不友好。而如果坚持想用jsp做页面的话也是没问题的,需要自己在原项目基础上新建webapp的目录结构,然后做两步简单配置即可
1、application.properties文件中增加配置:
#mvc
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
2、pom.xml对应增加这两个jar
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!--<scope>provided</scope>-->
</dependency>
两个jar一般都会加上(如果不用jstl只加jasper包也可);
还有这两个jar对应的配置文件是spring.mvc.view.prefix,而写成spring.view.prefix会报错。
此外,理论上下面这两个依赖也可以
<!-- 整合jsp 依赖的包 必须是war工程-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
还有,说一个IDEA中常见的问题:
如果你在IDEA中一个project中有多个module,启动springboot时启动成功,却总是访问不到正常页面,并且检查文件路径及相应jar包都正常时。执行下列操作试试:
点击右边栏的maven会弹出如图所示的maven操作界面;选择需要运行的模块工程,按圈的依次点击打开;最后打开spring-boot 选择spring-boot:run运行。操作如下图:
运行成功后打开前面的页面,页面即可正常显示。
猜测IDEA出现这种灵异事件原因:直接运行springboot启动类 程序会加载多个模块的程序,所以前端页面发生找不到页面404情况,所以IDEA中推荐以maven方式运行程序。
顺便说一下,如果IDEA建的是maven项目,不是SpringBoot项目。则pom.xml里面还需要改一下build,IDEA中才能使用spring-boot:run。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
当然,Maven项目改成SpringBoot项目,也要加SpringBoot项目的依赖:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>