springboot中集成jsp,打成jar包可用jsp

前两个花了些时间把spring项目转移到springboot中。由于之前的项目中用的模板引擎是jsp,但是springboot对于jsp支持并不是太好。所以花了写时间。以下是操作步骤。

这个是1年多前写的文章,当时写的不是很清晰,但是我看了点击量很高,所以应该还是有很多人遇到了这个问题,所以在开头简单说下为什么springboot集成jsp,访问会404.在springboot版本1.5中集成jsp,打完包访问界面会报404错误,我当时仔细找了一下原因,是因为springboot1.5的打包插件不支持jsp。用1.4版本打的jar包是没有问题的,当然ide工具运行也是没有问题的,所以你想用springboot1.5版本,在spring-boot-maven-plugin指定版本为1.4就可以了。其他的东西都是一样的。

1,首先你需要在你的pom文件中加入jsp依赖支持。


org.springframework.boot

spring-boot-starter-parent

1.5.3.RELEASE

org.springframework.boot

spring-boot-starter-web

org.apache.tomcat.embed

tomcat-embed-jasper

jstl

jstl

${jstl.version}

2,然后在配置文件中指定你的视图位置

yml写法

spring:

  mvc:

    view:

prefix: /

      suffix: .jsp

proferties写法

spring.mvc.view.prefix=/

spring.mvc.view.suffix=.jsp

注意prefix这里写的就是你自己的jsp文件存放的位置,例如你在WEB-INF/jsp下面,路径就是

3,在完成上面的步骤之后,运行项目就可以访问jsp界面,但是别高兴的太早,当你打成一个jar包的时候,你会发现你不能访问jsp了,原因是你需要在你的pom文件把webapp的文件打包进去。在pom文件中里面加入以下代码

下面的这段代码

就是把jsp文件打进jar包的代码。打完包的同学,可以把jar包解压看看里面有没有这个文件。

org.springframework.boot

spring-boot-maven-plugin

1.4.2.RELEASE

src/main/java

**/**


src/main/webapp

src/main/webapp

主义webapp就是你jsp相关文件的存放位置,对应你自己的目录

在这里如果你的pom文件继承了springboot的父pom是1.5.3版本的,这里很坑一点就是

spring-boot-maven-plugin 1.5.3版本的打包控件打出来的jar包是无法访问jsp的,直接404,即使你的jsp文件打包进去了。

spring-boot-maven-plugin 1.4.2版本就是可以的,我不知道这两个版本打包控件有什么区别,有知道的大神可以讲讲。

基本上到这里项目就是晚上加入了jsp支持了。springboot里面的配置,还有yml配置文件的配置,jsp热加载的,完整的pom配置 :

        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    4.0.0

    springboot_jsp

    1.0

    jar

   

        org.springframework.boot

        spring-boot-starter-parent

        1.5.3.RELEASE

   

   

       

            org.springframework.boot

            spring-boot-starter-web

       

       

       

            org.apache.tomcat.embed

            tomcat-embed-jasper

       

       

       

       

       

       

       

       

            jstl

            jstl

            ${jstl.version}

       

   

   

       

           

           

                org.springframework.boot

                spring-boot-maven-plugin

                1.4.2.RELEASE

               

                    test.Application

               

               

                   

                       

                            repackage

                       

                   

               

               

                   

                   

                        org.springframework

                        springloaded

                        1.2.6.RELEASE

                   

               

           

           

           

                org.apache.maven.plugins

                maven-war-plugin

               

                    false

               

           

       

       

           

           

               

                src/main/webapp

               

                META-INF/resources

               

                    **/**

               

           

           

                src/main/resources

               

                    **/**

               

                false

           

       

   

   

   

   

   

   

   

   

你可能感兴趣的:(springboot中集成jsp,打成jar包可用jsp)