不建议在SpringBoot中使用JSP。
<!--导入父类依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--整合jsp-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<!--处理jsp-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--JSTL-->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>provided</scope> <!---->
</dependency>
</dependencies>
#配置视图解析(配置yml文件的时候需要将这个注释删除,否则会出错)
spring:
mvc:
view:
prefix: /
suffix: .jsp
package com;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ApplicationRun {
public static void main(String[] args) {
SpringApplication.run(ApplicationRun.class,args);
}
}
package com.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
private Integer id;
private String name;
private Integer age;
}
package com.controller;
import com.entity.Student;
import com.repository.StudentRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/hello")
public class HelloHandler {
@Autowired
private StudentRepository studentRepository;
/**
* 一开始进入就展示所有的数据信息
* @return
*/
@RequestMapping("/index")
public ModelAndView modelAndView() {
ModelAndView m = new ModelAndView();
m.setViewName("index");
m.addObject("list", studentRepository.findAll());
return m;
}
/**
* 更改学生信息之前,需要先查询学生信息出来,并且学生id不可更改
* @param id
* @return
*/
@GetMapping("/findById/{id}")
public ModelAndView findById(@PathVariable("id") Integer id) {
ModelAndView m=new ModelAndView();
m.setViewName("update");
m.addObject("student",studentRepository.findById(id));
return m;
}
/**
* 重定向
*
* return "index"; //直接跳转的话,jsp中的数据不可取出
*
* @param id
* @return
*/
@GetMapping("/deleteById/{id}")
public String deleteById(@PathVariable("id") Integer id){
studentRepository.deleteById(id);
return "redirect:/hello/index";
}
@PostMapping("/save")
public String save(Student student){
studentRepository.saveOrUpdate(student);
return "redirect:/hello/index";
}
@PostMapping("/update")
public String update(Student student){
studentRepository.saveOrUpdate(student);
return "redirect:/hello/index";
}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>学生信息</h1>
<table>
<tr>
<th>学生id</th>
<th>学生姓名</th>
<th>学生年龄</th>
<th>操作</th>
</tr>
<c:forEach items="${list}" var="student">
<tr>
<th>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.age}</td>
<td>
<a href="/hello/findById/${student.id}">修改</a>
<a href="/hello/deleteById/${student.id}">删除</a>
</td>
</th>
</tr>
</c:forEach>
</table>
<a href="/save.jsp">添加学生</a>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加学生信息</title>
</head>
<body>
<%--点击提交按钮,将由/hello/save来进行请求处理--%>
<form action="/hello/save" method="post">
id: <input type="text" name="id"/><br/>
name:<input type="text" name="name"/><br/>
age:<input type="text" name="age"/><br/>
<input type="submit" value="添加">
</form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>修改学生信息</title>
</head>
<body>
<%--点击提交按钮,将由/hello/update来进行请求处理--%>
<form action="/hello/update" method="post">
id: <input type="text" name="id" value="${student.id}" readonly/><br/>
name:<input type="text" name="name" value="${student.name}"/><br/>
age:<input type="text" name="age" value="${student.age}"/><br/>
<input type="submit" value="修改">
</form>
</body>
</html>
原文:https://www.cnblogs.com/YuRong3333/p/14603865.html