springboot项目打成jar包后无法显示jsp

springboot项目打成jar包后无法显示jsp的解决方案

超级头疼

一直显示
在这里插入图片描述
去网上找了很多解决办法,但不是关键问题,最后自己误打误撞,总算解决了,汇总分享一下

1.更换正确的打包插件

这里关键的就是这个版本号,一定要是这个版本,很多博主说是因为springboot官方推荐的前端模板是themeleaf,能与jsp兼容的打包插件只有这个版本。

<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.4.2.RELEASE</version>
</plugin>

2.添加对jsp的依赖

 		<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <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>compile</scope>
		</dependency>

3.手动指定让jsp被编译到指定的文件夹

我就不多废话了,想要打jar包的同学应该知道这是什么,这还不是我要将的重点,但是我的错误跟这也有很大关系。

			<resource>
                <directory>src/main/webapp</directory>
                <targetPath>META-INF/resources</targetPath><!--最后被编译到的文件夹,一定要在META-INF/resources下面-->
                <includes>
                    <include>*.*</include>
                </includes>
            </resource>

4.在核心配置文件中配置视图解析器(最关键)

spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp

前缀根据 “/” 就是我们第三步中的

<targetPath>META-INF/resources</targetPath>

如果你的 META/resources 下面还有子文件夹,核心配置文件的 “/” 的后面一定要加上该文件夹,否则jar包被运行时会找不到jsp,但是在idea中运行却能找到。

比如你的tartgetpath是这样

<targetPath>META-INF/resources/view</targetPath>

视图解析器就必须是

spring.mvc.view.prefix=/view/ #最后的斜杠一定不能少
spring.mvc.view.suffix=.jsp

我就是这里没有保持一致出了问题

Guess you like

Origin blog.csdn.net/tblwbr520/article/details/118977585