spring boot实现评论功能
时间: 2023-09-28 21:11:23 浏览: 146
Spring Boot可以使用Spring Data JPA和Thymeleaf模板来实现评论功能。
1. 创建实体类
首先,我们需要创建一个评论实体类,包括评论的内容、创建时间、用户等信息。
```java
@Entity
public class Comment {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String content;
@ManyToOne
private User user;
@ManyToOne
private Article article;
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;
// 省略getter和setter方法
}
```
2. 创建Repository
使用Spring Data JPA创建一个Repository来管理评论实体。
```java
@Repository
public interface CommentRepository extends JpaRepository<Comment, Long> {
List<Comment> findByArticleOrderByCreateTimeDesc(Article article);
}
```
3. 创建Controller
创建一个Controller来处理评论相关的请求。
```java
@Controller
@RequestMapping("/comment")
public class CommentController {
@Autowired
private CommentRepository commentRepository;
@PostMapping("/add")
public String addComment(@RequestParam Long articleId, @RequestParam String content, Principal principal) {
Article article = articleRepository.getOne(articleId);
User user = userRepository.findByUsername(principal.getName());
Comment comment = new Comment();
comment.setArticle(article);
comment.setContent(content);
comment.setUser(user);
comment.setCreateTime(new Date());
commentRepository.save(comment);
return "redirect:/article/" + articleId;
}
}
```
4. 创建HTML页面
最后,我们需要创建一个页面来显示文章的评论并允许用户添加评论。
```html
<div class="comments">
<h2>评论</h2>
<div th:each="comment : ${comments}">
<p th:text="${comment.content}"></p>
<p>发表于 <span th:text="${#temporals.format(comment.createTime, 'yyyy-MM-dd HH:mm')}"></span> by <span th:text="${comment.user.username}"></span></p>
</div>
<h3>添加评论</h3>
<form th:action="@{/comment/add}" method="post">
<input type="hidden" name="articleId" th:value="${article.id}" />
<textarea name="content"></textarea>
<input type="submit" value="添加评论" />
</form>
</div>
```
以上就是使用Spring Boot实现评论功能的基本流程。
阅读全文