Spring boot开源项目之个人博客(12)—分类(标签)管理

本文介绍Spring Boot开源项目中个人博客的分类和标签管理功能,包括分页展示、增删查改、非空和重复验证。详细阐述了如何利用Thymeleaf和Spring Boot的Pageable进行前端分页,以及后端服务和控制器的实现,同时涉及了非空验证和重复验证的处理。
摘要由CSDN通过智能技术生成

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"}
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
前言: 这是本人开发的个人知识管理软件,特别适合需要阅读大量pdf\word\mht\txt等格式文献的科研人员,有效提高个人知识管理能力,减轻记忆压力。因为这几年来都没有时间开发和维护,所以现在开源,希望有人能发扬光大。由于时间关系,没有很好整理文档,而且不是最新版,需要的请联系。本人曾参与Sourceforge的latex2rtf项目,在知识管理方面具有独创见解,希望大家能共同探讨,促进我国科研人员的个人知识管理水平。 本软件综合了Tag2Find、Leapfrog Tag等Tag管理软件的优点,同时克服了这类软件速度奇慢的缺点,具有Everything一样的即时搜索性能。所以叫Tagging-Taggie。 大致工作流程: ------------------------------------------------------------ 1. 启动Tagging软件,此时后台会运行一些针对常用阅读软件开发的AutoHotkey脚本(可以自定义); 2. 在你熟悉的阅读软件中(例如Acrobat Adobe、Pdf Xchange Viewer, Office Word等里面)按下快捷键 Ctrl+`,将弹出一个迷你窗口(叫Taggie),可以输入各类标签(也可以从常用词中选择,如文章类型,重要性),同时显示以前的关键词,所有标签和当前页码等信息会自动保存到数据库中。 如果按下快捷键 Alt+`,则不弹出任何窗口,但是数据库中将记录此文件的标题,当前选中的文字前20个字等信息,这样方便地保存了您的访问记录,而且不受软件的限制。 3. 打开Tagging主界面(类似Everything),可以一边打字输入一边获得检索结果,同时有最近浏览记录、访问最多记录、最常用Tag等信息。 注:上述快捷键可以自定义,例如设置为F1是最轻松的。 背景知识: ----------------------------------------------------------- 一般来说,我们阅读科技文献时,希望随时快速记下带有自己思维方式的Tag,比如这篇文章是欧洲某国的,这一页很重要,这篇文章很重要,这篇文章是90年代的,这篇文章是某公司或某大学的,这是会议文章/期刊文章/技术报告/国际标准等等。但是如果采用重命名文件的方法(适用于Tag较短的情况),就会疲于应付。 如果你是研究生或者科研工作者,那么自然需要阅读大量的文献,采用其它知识管理软件都需要大量的鼠标和键盘动作,同样会疲于应付。 换句话说,采用文件夹管理只是实现了文件的树状分类,但是一篇文献在每个人脑海里面还有特殊的标签,只有采用标签和树状分类才能保证我们的每一篇文献都能快速找到。 采用本软件,你就可以从各种蛛丝马迹中找到你曾经阅读过的文献。 工作机理 ------------------------------------------------------- 1. Taggie会自动获得当前文件的特定属性,例如文件创建日期、pdf的页数、已有关键词等,并根据这些信息为该文件创建一个UUID.lnk,如果开启了Distributed Link Tracking Client服务,在本地计算机你可以随意重命名或者移动该文件,以后用Tagging搜索Tag时都可以找到该文件。 2. 当前版本用到的数据库其实就是类似csv或者xls的文本文件,你也可以通过OneNote接口把数据保存到One文件里面去,这样可以在OneNote里面补充注释,管理起来更加富有层次。 细节和讨论: ---------------------------------------------------------- 1. 多个标签数据库的同步和合并; 可以为不同电脑指定一个特定的数据库名字,在Tagging里面可以勾选要搜索的数据库,一般不用考虑数据同步。但是最好能随时把个人的数据库上传到快盘之类的地方,或者用Groove同步,实现团队成员的知识管理。 2. 采用Symbolic link的方式与采用快捷方式的对比。 还没有测试。 3. 。。。。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值