1.新建springboot項目,選擇以war包的方式package;

image
2.勾選Web模塊,DevTools可不選(用作熱部署,不影響運行)

image
3.創建完成后,項目結構如下圖:

image
4.pom.xml文件中添加jsp的依賴
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency>
5.在application.properties文件中添加以下內容:
#路徑,在webapp文件夾下新建文件夾WEB-INF,在往下建文件夾jsp spring.mvc.view.prefix=/WEB-INF/jsp/ #文件名的后綴,例如:index.jsp,放在jsp文件夾下 spring.mvc.view.suffix=.jsp
.yml 文件配置如下:
spring:
mvc:
view:
prefix: /WEB-INF/test/
suffix: .jsp
6.新建index.jsp文件,路徑結構如圖:

7.index.jsp頁面內容如下:
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>登錄</title> <link rel="stylesheet" href="<%=request.getContextPath() %>/css/signin.css"> <link rel="stylesheet" href="<%=request.getContextPath() %>/css/bootstrap.min.css"> <style type="text/css"> body { padding-top: 50px; } .starter-template { padding: 40px 15px; text-align: center; } </style> </head> <body> <nav class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <a class="navbar-brand" href="#">Spring Boot+JSP</a> </div> <div id="navbar" class="collapse navbar-collapse"> <ul class="nav navbar-nav"> </ul> </div> </div> </nav> <div class="container"> <div class="starter-template"> <h2>登錄</h2> <form class="form-signin" role="form" name="form" action="/login" method="post"> <div class="form-group"> <label for="username">用戶名</label> <input type="text" class="form-control" name="username" value="" placeholder="用戶名"/> </div> <div class="form-group"> <label for="password">密碼</label> <input type="password" class="form-control" name="password" placeholder="密碼"/> </div> <input type="submit" id="login" value="Login" class="btn btn-primary"/> </form> </div> </div> </body> </html>
8.引入css文件,這個不影響效果,只是index.jsp的頁面會不好看

image.png
9.新建IndexController.java
package com.example.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class IndexController { @RequestMapping("/index") public String index() { return "index"; } }
如果想使用restcontroller注解,需要以下處理
@GetMapping("/order")
public ModelAndView toPayJsp() {
// return
// "pay_wx";//@RestController注解含有@ResponseBody注解,結果pay_wx沒有經過視圖解析器解析直接變成json字符串返回給瀏覽器了
ModelAndView mv = new ModelAndView("pay_wx");
return mv;
}
10.啟動服務,訪問localhost:8080/index 即可訪問index.jsp成功