Spring boot开源项目之个人博客(12)—分类(标签)管理
分类、标签管理功能高度重合,就只记录分类管理。分类管理主要涉及到了增删查改和前端分页展示的功能,还有一些零碎的非空验证、重复验证等。
1. 分页展示
前端是有两个页面,一个用来分页展示,并提供新增、编辑、删除等功能,分类、标签的管理不做条件查询,条件查询会在博客管理做;另一个是新增、编辑共用的表单提交页。
分页展示页面套用了之前做好的博客管理的分页展示页模板,这里主要记录如何用theamleaf和springboot的Pageable实现前端的分页展示。
service层
@Transactional
@Override
public Page<Type> listType(Pageable pageable) {
return typeRepository.findAll(pageable);
}
定义了查询方法,返回Page<Type>
类型的列表。
controller层
@GetMapping("/types")
public String types(@PageableDefault(size = 10, sort = {
"id"}, direction = Sort.Direction.DESC)Pageable pageable, Model model){
model.addAttribute("page", typeServiceImpl.listType(pageable));
return "/admin/types";
}
把查到的分类列表用Model推到前端,page里的值有以下格式
{
"content":[
{
"id":123,"title":"blog122","content":"this is blog content"},
{
"id":122,"title":"blog121","content":"this is blog content"},
{
"id":121,"title":"blog120","content":"this is blog content"},
{
"id":120,"title":"blog119","content":"this is blog content"},
{
"id":119,"title":"blog118","content":"this is blog content"},
{
"id":118,"title":"blog117","content":"this is blog content"},
{
"id":117,"title":"blog116","content":"this is blog content"},
{
"id":116,"title":"blog115","content":"this is blog content"},
{
"id":115,"title":"blog114","content":"this is blog content"},
{
"id":114,"title":"blog113","content":"this is blog content"},
{
"id":113,"title":"blog112","content":"this is blog content"},
{
"id":112,"title":"blog111","content":"this is blog content"}