记录一下开始搭建springboot+jsp项目遇到的一个问题

  • 简述自己搭建项目的过程
  • 错误及解决
  • 总结加补充



最近刚开始学习搭建springboot项目,用到的ide工具是idea,前端用的是jsp

简述自己搭建项目的过程

直接上图

  1. 在idea中创建一个springboot项目,选择好自己使用的jdk
  2. 刚创建好的项目目录结构如下图所示。其中,java目录下使我们java代码:像controller,service之类;resources目录下存放的是一些项目相关的静态文件和配置文件:static主要存放js文件、图片和html文件,templates放得是前端页面thymeleaf,application.properties就是springboot配置文件啦
  3. 因为我前端用的是jsp,所以在java和resources并列的位置创建了一个webapp,然后在webapp下创建了一个WEB-INF目录用来存放jsp文件
  4. 然后在pom文件中加入了支持jsp的依赖jar
<dependency>
       <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <!-- provided表明该包只在编译和测试的时候用 -->
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>
  1. 对springboot配置文件做了简单配置,主要是配置jsp文件访问路径,这个格式是yml格式,只需要把application.properties后缀更改为yml即可,springboot支持yml和properties两种配置格式
server:
  port: 8080
  servlet:
    context-path: /sessionDemo
spring:
  mvc:
    view:
      suffix: .jsp
      prefix: /WEB-INF/page
  1. 后边就是写自己的java代码和jsp页面了,很简单的代码我就补贴了哈哈

错误及解决

一切搞定,兴奋的我赶紧启动项目开始访问,结果却出错了,遇到了如下错误

springboot将final static如何放到配置文件中_spring


遇到错误咱就解决错误,于是我就开始在网上查找资料,发现网上大致都是说出现这种问题有两种可能,第一种就是:启动类放置的位置不对(应该放置在最外层包下,因为项目启动后,springboot会默认扫描启动类同包和子包下的类),另一种就是:项目配置文件中的jsp访问路径有问题,低版本的springboot配置没有view(spring.mvc.view.suffix= .jsp)

但是我检查了发现这两种情况我都不存在。

于是我将controller的方法加上@ResponseBody发现能够输出内容到浏览器,到这一步确定是jsp配置有问题,于是检查项目配置文件发现,jsp配置少写了一个“/”,正确的配置为

server:
  port: 8080
  servlet:
    context-path: /sessionDemo
spring:
  mvc:
    view:
      suffix: .jsp
      prefix: /WEB-INF/page/

还是自己太粗心啊

总结加补充

我在创建项目时有一步没有做

  1. 进入项目设置界面
  2. 创建一个web
  3. 将Deployment Descriptors下的内容清空,这部分用来配置web.xml路径,清空是因为springboot项目用不到web.xml;将web Resource Directory路径改为webapp路径,用来指示前端页面文件在该目录下
  4. 配置完成后项目中的变化是,webapp文件夹上多了一个小圆点

    现在在webapp下可以创建jsp文件了,如果不配置,是不能创建的