Springboot集成jsp 以及部署服务器问题
1.在application配置文件里面加入配置:
spring: mvc: view: prefix: /jsp/ suffix: .jsp
2.手动在src->main->下面创建webapp文件夹
3.在Springboot 启动类加入如下代码:
@Bean public InternalResourceViewResolver setupViewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/jsp/"); resolver.setSuffix(".jsp"); return resolver; }
4.在webapp->下面创建jsp文件夹放入你的jsp文件
这个时候目录层级大概应该是这样的
5.在pom文件里面加入jsp依赖
<!-- jsp --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <!-- jsp-->
这个时候jsp是可以正常访问的。
但是部署到服务器之后就会出现404错误(我出现了这个错误。)
解决办法:
在pom文件中加入代码:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!-- 这一部分是加入的内容 <version>1.4.2.RELEASE</version> --> <!-- 解决部署之后jsp访问404 问题 只能springboot 启动类main其他main都要注释或者删除 --> <version>1.4.2.RELEASE</version> <configuration> <fork>true</fork> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> <!-- 解决访问打包时忽略webapp问题 使用命令 打包 mvn clean install -Dmaven.test.skip=true --> <!-- resources插件,在打jar包时可以将webapp目录下的文件进行打包 --> <resources> <resource> <!-- 指定resources插件处理哪个目录下的资源文件 --> <directory>src/main/webapp</directory> <!--注意此次必须要放在此目录下才能被访问到 --> <targetPath>META-INF/resources</targetPath> <includes> <include>**/**</include> </includes> </resource> <!-- 将项目中的配置文件,打包至classes下面 --> <resource> <directory>src/main/resources</directory> </resource> </resources>
因为据网上的资料说超过这个版本之后就不行了,具体原因未深究。
至此从新打包部署之后jsp应该就可以正常访问了
然后我这边做法是把资源文件都放到服务器了 js css img等等这些资源