在Idea中使springboot支持jsp页面

在idea 上springboot集成jsp页面

第一步:新建一个项目

推荐使用这个,默认下一步就好,

填写自己的信息,next,

选择使用的功能,也可以新建好之后再pom.xml里手动添加,

选择项目存放地址,一个springboot的项目就建好了。下边需要导入相应的依赖包,pom.xml如下:

复制代码
<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.clark</groupId>
  <artifactId>spring-boot-web</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.RELEASE</version>
    </parent>

  <name>spring-boot-web</name>
  <url>http://maven.apache.org</url>

  <properties>
   <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </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>
        <!-- Tomcat的支持 -->
        <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>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
    <build>
     
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
复制代码

下一步是配置application.properties中,只需要添加这2个就可以了

#页面默认前缀目录
spring.mvc.view.prefix=/WEB-INF/jsp/
#页面默认后缀目录
spring.mvc.view.suffix=.jsp

application.yml中:spring节点下面

mvc:  view:  prefix: /WEB-INF/jsp/
    suffix: .jsp

接下来需要新建一个文件,在src\mian\webapp,在下边新建一个WEB-INF/jsp文件,在这个下边新建一个jsp页面,

不用去管那个web.xml.,一会在其他地方配置的时候会自动出现,hello.jsp,最好将编码改为UTF-8,


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>My first Spring boot web demo</title>
</head>
<body>
<h2>Hello ${name}</h2>
</body>
</html>
HelloController代码
package sprintboot;

import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {

    @RequestMapping("/index")
    @ResponseBody
    public String index() {
        return "index";
    }

    @RequestMapping("/name")
    public String name(Map<String, Object> map) {
        map.put("name", "Clark");

        System.out.println("============================================");
        return "hello";
    }

}

输出一句,看看是否进入到这个方法,算是代替日志的作用吧 。注意一定要将这个Controller放在启动类的同包或者子包下,否则扫描不到。现在可以启动项目去试试,但是访问页面的时候会报404错误,控制到会打印============,说明已经进入方法,在跳转的时候出错。下边要配置idea的东西,

选到这个,

选择modules,点击+号,添加

然后就是这个样子,下边就是要更改这些信息,

更改这2处地方,默认的是web,要更改为src\main\webapp,配置好之后,上文提到的web.xml就自动出现了,不需要去更改。然后去重启项目,在页面就能正常访问了,这个是springboot1.5.6和1.5.7都可以使用。如果是springboot1.4.4的话不需要配置最后一步也能访问,但是1.5.*不配置就会出错,

 昨天晚上测试看一下,打成war可以访问,打成jar会出现404,如果要打包的话,最后设置为war包