[SpringBoot]在Idea中使springboot支持jsp页面的注意事项

详细步骤网上很多, 转一个备用. 这里主要讲下要注意的事项

1. pom文件里千万不能增加 spring-boot-starter-thymeleaf依赖, 否则会报下面的错误,

 原因也想想也很简单, 如果导入了thymeleaf的包, 则会从thymeleaf的目录结构查找index.jsp.

org.thymeleaf.exceptions.TemplateInputException: Error resolving template "index"

2. spring-boot-starter-tomcat的scope必须设置成provided.

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-tomcat</artifactId>                                           <scope>provided</scope>

</dependency>

 

=====================

下面内容是转自https://www.cnblogs.com/fangke/p/8552000.html

因为,临近毕业了,自己虽然也学了很多框架。但是,都是在别人搭建好的基础上进行项目开发。但是springboot的官方文档上明确指出不提倡使用jsp进行前端开发,但是在校期间只学了jsp作为前端页面。所以,废话不多说,先上项目结构图。

先跟大家说下项目结构:

1)webapp主要是用来放jsp页面的。

2)最下方的web文件夹是通过idea软件来生成的,自己不需要改变。

那就跟着博主一起来搭建一遍。

1. 先file -> new -> project

然后可以选择Spring Initializr或者直接一个Empty Project都可以来建web项目。这里我们为了方便就使用Spring Initializr来建SpringBoot的项目。

之后就是next 这里需要注意一点。packaging的格式一定要采用War的形式。因为jsp只支持War包。

然后继续next  这里我们选择一个web,因为是一个web的项目 所以就先打勾勾了,其它的myBatis,我们可以在后期通过pom.xml文件进行添加。

然后选择SpringBoot的版本为1.5.10 现在的2.0刚出来。怕不稳定

然后 就是next和finish。

2. 这是通过第一步创建出来的项目结构图

1)TestApplication是SpringBoot的启动类。但是由于没有配置数据源,所以需要在启动类上面添加一个去除数据源的注解

2)ServletInitializer是继承自Servlet的类,如果嫌2个类太麻烦,可以将TestApplication继承自SpringBootServletInitializer

3) 改成为一个类之后是这样的。

3.在main文件夹下面创建一个webapp。然后在webapp下创建一个WEB-INF,再在WEB-INF下创建jsp文件夹。在jsp里面建一个index.jsp文件。项目结构如下

4.在com.fangke这个包下面创建一个controller作为访问之前index.jsp的入口。

TestController里面的内容为

5.然后在application.properties文件里写访问资源路径  这里的.jsp为后缀

6.到这一步,还是不能运行这个项目,会报404找不到页面,但是已经可以进入index()这个方法了。接下来,我们需要选择file -> project structure

然后选择web

如果没有web的话。可以点加号。添加一个web

接下来就是分别配置Deployment Descriptors和Web Resource Directories

7.我们需要向pom.xml文件中加入servlet依赖包以及tomcat依赖包和之前提到的myBatis的依赖包......(直接上图)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>com.fangke</groupId>
   <artifactId>test</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>war</packaging>

   <name>test</name>
   <description>Demo project for Spring Boot</description>

   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.5.10.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>
      <spring-cloud.verson>Dalston.SR4</spring-cloud.verson>
   </properties>

   <dependencies>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>

      <!-- servlet 依赖包 -->
      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <scope>provided</scope>
      </dependency>

      <!-- JSTL (JSP standard Tag Library) JSP 标准标签库 -->
      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>jstl</artifactId>
      </dependency>

      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-tomcat</artifactId>
         <scope>provided</scope>
      </dependency>

      <dependency>
         <groupId>org.apache.tomcat.embed</groupId>
         <artifactId>tomcat-embed-jasper</artifactId>
         <!-- <scope>provided</scope>-->
      </dependency>

      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>

      <dependency>
         <groupId>org.mybatis.spring.boot</groupId>
         <artifactId>mybatis-spring-boot-starter</artifactId>
         <version>1.1.1</version>
      </dependency>

      <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <scope>runtime</scope>
      </dependency>

      <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>druid</artifactId>
         <version>1.0.27</version>
      </dependency>

      <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>fastjson</artifactId>
         <version>1.2.23</version>
      </dependency>

      <!--加密字符-->
      <dependency>
         <groupId>org.apache.poi</groupId>
         <artifactId>poi</artifactId>
         <version>3.13</version>
      </dependency>

      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-redis</artifactId>
         <version>1.3.2.RELEASE</version>
      </dependency>

      <dependency>
         <groupId>com.github.pagehelper</groupId>
         <artifactId>pagehelper-spring-boot-starter</artifactId>
         <version>1.1.0</version>
      </dependency>

      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-aop</artifactId>
      </dependency>
   </dependencies>

   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>
</project>

8.启动这个项目,然后浏览器访问localhost:8080/index 就可以访问了(加一句静态资源需要放在resources下的static文件夹下)

 项目源码 https://github.com/fk123456/test.git

猜你喜欢

转载自blog.csdn.net/hui85206/article/details/82990584