代码实现一个基于Spring boot + Mybatis-Plus+JQUERY+Bootstrap 的留言板
时间: 2024-01-17 11:04:49 浏览: 121
首先,我们需要创建一个 Spring Boot 项目,并添加以下依赖:
```xml
<!-- Spring Boot Starter Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Mybatis Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<!-- MySQL Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
<!-- JSP and JSTL -->
<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>
<!-- Bootstrap and jQuery -->
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>5.0.0-beta3</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.5.1</version>
</dependency>
```
接着,我们需要配置 MySQL 数据库连接。在 `application.properties` 文件中添加以下配置:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/message_board?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
```
其中,`message_board` 是我们新建的数据库名。
接下来,我们需要定义留言实体类 `Message`:
```java
@Data
@TableName("message")
public class Message {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private String content;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
}
```
使用 `@TableName` 注解指定表名,使用 `@TableId` 注解指定主键。
接着,我们需要定义留言 DAO 接口 `MessageMapper`:
```java
public interface MessageMapper extends BaseMapper<Message> {
}
```
继承 `BaseMapper` 接口即可自动获得 CRUD 操作。
然后,我们需要定义留言服务实现类 `MessageServiceImpl`:
```java
@Service
public class MessageServiceImpl extends ServiceImpl<MessageMapper, Message> implements MessageService {
}
```
继承 `ServiceImpl` 类即可自动获得 CRUD 操作的实现。
接下来,我们需要定义留言控制器 `MessageController`:
```java
@Controller
public class MessageController {
@Autowired
private MessageService messageService;
@GetMapping("/")
public String index(Model model) {
List<Message> messages = messageService.list();
model.addAttribute("messages", messages);
return "index";
}
@PostMapping("/add")
public String add(Message message) {
message.setCreateTime(new Date());
messageService.save(message);
return "redirect:/";
}
}
```
使用 `@Autowired` 注解自动注入留言服务实现类。`index` 方法用于展示留言列表,`add` 方法用于添加留言。
最后,我们需要编写留言页面 `index.jsp`:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<title>留言板</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/webjars/bootstrap/5.0.0-beta3/css/bootstrap.min.css" rel="stylesheet">
<script src="/webjars/jquery/3.5.1/jquery.min.js"></script>
<script src="/webjars/bootstrap/5.0.0-beta3/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container pt-5">
<div class="row">
<div class="col-md-8">
<h1>留言板</h1>
<hr>
<ul class="list-unstyled">
<c:forEach items="${messages}" var="message">
<li>
<h4>${message.name}</h4>
<p>${message.content}</p>
<p class="text-muted">${message.createTime}</p>
</li>
</c:forEach>
</ul>
</div>
<div class="col-md-4">
<h2>添加留言</h2>
<hr>
<form action="/add" method="post">
<div class="mb-3">
<label for="name" class="form-label">姓名</label>
<input type="text" class="form-control" id="name" name="name">
</div>
<div class="mb-3">
<label for="content" class="form-label">内容</label>
<textarea class="form-control" id="content" name="content" rows="5"></textarea>
</div>
<button type="submit" class="btn btn-primary">提交</button>
</form>
</div>
</div>
</div>
</body>
</html>
```
使用 Bootstrap 和 jQuery 实现样式和交互效果。
最后,启动项目并访问 http://localhost:8080/ 即可看到留言板页面。
阅读全文