本帖最后由 JingXianSen 于 2018-11-22 14:25 编辑
新注册的账号,今天来发表第一篇帖子,有什么问题欢迎大家来指导一下。感谢<吾爱破解>提供相互交流的平台。
最近刚开始学习springboot做项目,上周四公司安排一个小的项目,就几个页面,向平时就直接用做一个Javaweb项目,完事部署在tomcat就OK。这次不想再这么弄,想用用新的东西,就看了看springboot的一些使用方法。于是就开始做项目的工作,使用中发现springboot推荐的页面模板使用thymeleaf。然而这个之前也没接触过,于是采用JSP,因为实在没有时间学习(时间安排的比较近,只给了3天时间)。
springboot上手后,很快捷。对于项目服务功能代码其实编写跟之前的mvc是一样的,只是它集成了很多框架,省去了很多的配置,没什么难度。只是到最后的jsp页面显示真的是卡了我好长时间。就来此记录一下,方便大家同样问题的同学们参考参考。希望能有所价值。
好了废话不多说了,接下来正式开始项目相关内容。
使用开发工具 IntelliJ IDEA.
对于需要使用jsp页面模板的,需要自己手动创建文件目录。新建目录在 ./你的项目名/src/main/webapp 如果你有需要也同时新建WEB-INF 目录,我这里有这个目录,但是没有使用。
pom依赖:
[XML] 纯文本查看 复制代码
<modelVersion>4.0.0</modelVersion>
<groupId>com.项目名</groupId>
<artifactId>statisticalvisits</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<!--<packaging>war</packaging> 如果需要打包在tomcat中运行 可替换为war包,mvn打包会根据此处来执行 -->
<name>statisticalvisits</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!-- 此处网上有很多博客说如果使用jsp页面,就必须使用springboot-1.4.2版本,但是我使用的时候用的2.0.6没有问题,反而用1.4.x会出问题,如果你有问题可以考虑换位1.4.2的试试 -->
<!--<version>1.4.2.RELEASE</version> -->
<version>2.0.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- mysql jar包依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<!-- 使用jsp页面模板,必须有这个依赖 ,版本号可自行在mvn仓库选择-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>8.5.34</version>
</dependency>
</dependencies>
<build>
<!-- 如果使用打war包,包名可根据此处更改为你想要的项目名,不然放到tomcat运行后项目名可能不是这个 -->
<!--<finalName>visitCount</finalName>-->
<plugins>
<plugin>
<!-- maven插件 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.2.RELEASE</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<useDefaultDelimiters>true</useDefaultDelimiters>
</configuration>
</plugin>
</plugins>
<resources>
<!-- 此处最为重要-否则打包后没有你的JSP页面模板,一定要记得写为资源文件 targetPath 设置必须是 META-INF/resources
我项目做出来的时候因为没写resources导致打包运行后正常启动,各个接口也都正常访问,但是所有的jsp页面都会报404,找不到页面 ,因为这个问题浪费了我大半天时间-->
<resource>
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/**</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resource</directory>
<filtering>true</filtering>
</testResource>
</testResources>
</build>
对于springboot版本问题:网上有很多博客说如果使用jsp页面,就必须使用springboot-1.4.x版本以下,但是我使用的时候用的2.0.6没有问题,反而用1.4.x会出问题,如果你有问题可以考虑换位1.4.2的试试。
划重点:pom中<build>一定要记得写为资源文件 <targetPath> 设置必须是 META-INF/resources 否则打包后你的JSP页面模板在项目中的位置不对,springboot就无法定位到你的页面,我项目做出来的时候因为没写resources导致打包运行后正常启动,各个接口也都正常访问,但是所有的jsp页面都会报404,找不到页面 ,因为这个问题浪费了我大半天时间
然后jsp页面对应的springmvc的模板前缀后缀
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
下面截图是正确目录打包后的jar包项目结构正确结构jsp页面是在resources目录下
OK 分享的就这些内容,希望能帮到同样问题的同学。只能是给大家提供一个解决方案,当你无法解决的时候可以考虑这个方法试一试!
|