最近自己在自学spring boot,然后记录一些发现的问题,这里记录下,希望可以帮助到其他人吧,同时还希望可以时刻提醒自己这些细节吧。
这里直接先上自己的项目的架构吧。
嗯,这里是用idea直接创建出来的,然后创建出来的时候是没有webapp目录的,这里是自己创建的,然后再配置项目的web,指定了这个目录,自动生成了web.xml。
然后是正题,开始的时候我发现不能跳转,按照网上的配置流程配置,发现依旧不行。后来发现是pom.xml的锅,下面把流程记录下来。
<!-- servlet 依赖. -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- tomcat 的支持.-->
<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>
<scope>provided</scope>
</dependency>
开始是在pom.xml新增了上述的依赖,然后配置了application.properties文件。
#静态页面路径配置
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
然后问题来了,启动依旧报错,有的地方说要把上面的包的类型配置从jar改成war
<packaging>war</packaging>
改了,发现依旧没有用,依旧404。然后没有办法感觉找了一份其他项目,发现jsp的支持的pom是这样写的
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
然后发现居然可以了。对比了下,jasper被配置成了provided,所以项目启动的时候会报错!
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
本人用的是2.0.3版本,实际上,只需要配置jasper和jstl就可以了。至此,记录完毕,后面会接着记录。