博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Springboot重构-云笔记(2)
阅读量:4993 次
发布时间:2019-06-12

本文共 4258 字,大约阅读时间需要 14 分钟。

上面介绍了整个项目的基本配置,配置成功之后我们就可以动手撸代码了。本文章不是教程,只供楼主自己记录学习,和解决问题时的思路。

一、设计数据库

1.首先表的设计,项目比较小,表也很简单,先简单设计让项目先跑起来。

四张表,cn_note 是笔记表,cn_notenook是笔记本表,cn_stars 收藏表,cn_user 用户表

二、运行项目

三.展示登陆用户下笔记本功能设计思路

1.登陆成功,跳转到笔记本界面,会立刻加载这个用户下的所有笔记。

所有功能是使用js,ajax来和后端进行交互的。 前端代码如下:

创建newNote.js, 在edit.jsp中引入

newNote.js

$(function(){

loadNotebooks() //1,加载笔记 用户登陆的时候,把用户id存进Cookie里面 ,这时候把Cookie中的id取出来,查找这个用户下的笔记本,利用ajax 和后台交互,返回Json,拿到防护的数据之后遍历。

}); 

//网页加载以后立即读取笔记本列表function loadNotebooks() {    var userId = getCookie("userId");    var data = {
userId: userId}; var url = 'getNote.do'; $.post(url, data, function (result) { if (result.state == 0) { var notebook = result.data.data; console.log(notebook); showNotebooks(notebook) } });}

后台Controller代码:

//获取笔记本@RequestMapping("/getNote.do")@ResponseBodypublic JsonResult getNode(int userId) {    System.out.println("获取笔记本");    return new JsonResult(editService.getNote(userId));}

showNotebooks

遍历拿到的结果集

function showNotebooks(notebooks) {    var ul = $('#notebook-list ul');    ul.empty();    for (var i = 0; i < notebooks.length; i++) {        var notebook = notebooks[i];        console.log("name" + notebook.name);        console.log("id" + notebook.id);        //显示笔记名称        var li = notebookTemplate.replace('[name]', notebook.name);        //转成JS对象        li = $(li);        //将笔记本notebook的id绑定到对应的li上面 data是Jquery提供的方法。        li.data('notebookId', notebook.id);        $(document).data(notebook.name, notebook.id);        ul.append(li);    }    //  $('#notebook-list').find('.notebook').eq(0).click();}

重写了edi.jsp中两个li,即展现笔记本,和笔记的部分,[name] =笔记本名称,[title]=笔记本中的笔记名称

//class="online notebook"等于绑定两个classvar notebookTemplate = '
  • ' + '' + '[name]
  • ';var noteTemplate = '
  • ' + '[title]' + '' + '
    ' + '
    ' + '
    ' + '
    ' + '
  • ';

    在showNotebooks(notebooks)方法中,利用el表达 先找到展现笔记本的div 下ul。ul.empty()清除这个ul元素下的内容,

    遍历得到notebook.name,然后把 var li= notebookTemleate中[name] 替换成 notebook.name.

    在这里利用Jquery方法data(), 把notebookId绑定到对于的li上 。先把li 转换成JS对象 li=$(li),  然后绑定 li.data("notebookId",notebook.id)。这一步很重要,后面查找该笔记本下的笔记 就是根据notebookId来的。

    上面写完之后没错的话,页面上这个用户下笔记本名称应该展现出来了大笑

    四.单击笔记本显示笔记本下的笔记功能设计思路

    1.先看效果,点击“ 笔记1 ”展现 该笔记本下的所有笔记

    2. newNote.js

    $(function(){

    $('#notebook-list').on('click', '.notebook', shownotebook);
    //根据id选择器,找到div,为div 下的li(class=notebook),绑定一个单击事件 

    }); 

    //单击笔记本,显示笔记本下的笔记function shownotebook() {    var li = $(this);    //设定被点击的li默认被选中,增加checked属性    li.parent().find('a').removeClass('checked');    li.find('a').addClass('checked');    var notebookId = $('#notebook-list').find('a[class="checked"]').parent().data('notebookId');    console.log("notebookId :" + notebookId);    addCookie('notebookId', notebookId);    var url = 'findNote.do';    var data = {
    notebookId: notebookId}; $.post(url, data, function (result) { console.log(result); if (result.data.state == 0) { var notes = result.data.data; console.log(notes); showNoteName(notes); } else { //如果笔记本下没有笔记, 就清除上一次显示的笔记title和body,,显示空白 $('#input_note_title').val(''); um.setContent(''); var ul = $('#note-list ul'); ul.empty(); } })}

    3.shownotebook方法中,找到点击的li,取出li上绑定的notebookId,后台 根据这个notebookId查询该笔记本下的笔记。

    后台代码:

    //查询笔记本下的笔记@RequestMapping("/findNote.do")@ResponseBodypublic JsonResult findNote(int notebookId) {    System.out.println("查询笔记本下的笔记");    return new JsonResult(editService.findNote(notebookId));}

    返回Json, 在 showNoteName(notes)方法中遍历

    function showNoteName(notes) {    console.log("showNoteName");    var ul = $('#note-list ul');    ul.empty();    for (var i = 0; i < notes.length; i++) {        var note = notes[i];        var li = noteTemplate.replace('[title]', note.title);        li = $(li);        //将笔记本note的id绑定到对应的li上面 data是Jquery提供的方法。        li.data("noteId", note.id);        console.log(li.data("noteId"));        ul.append(li);    }}

    操作 和 显示笔记本是一样的,找到ul,清空ul中的元素,遍历 把var li=noteTemplete中的[title] 替换成note.title。在把对应的noteId绑定到 li上,后面查找笔记下的title和body需要用到。

    上面操作不误的话 应该就可以点击 笔记本 显示笔记了大笑

                                                                                                下一篇: 

    转载于:https://www.cnblogs.com/wang-qiang/p/9432287.html

    你可能感兴趣的文章
    oracle查锁表
    查看>>
    PHP SSH2 不支持 IdentityFile
    查看>>
    eclipse 僵死/假死 问题排查及解决
    查看>>
    番茄时间
    查看>>
    四位计算机的原理及其实现【转】
    查看>>
    mediawiki简易安装文档
    查看>>
    Ubuntu server 命令备忘
    查看>>
    yum常用操作
    查看>>
    MES系统框架及MES开源框架|C/S框架网软著产品
    查看>>
    以boost::function和boost:bind取代虚函数
    查看>>
    linux 下启动SVN服务
    查看>>
    vue框架学习
    查看>>
    现代计算机接口实验 (三)8255实验
    查看>>
    spring——获取ClassLoader
    查看>>
    javascript函数
    查看>>
    luogu4093 序列 (cdq分治优化dp)
    查看>>
    BZOJ 2588: Spoj 10628. Count on a tree( LCA + 主席树 )
    查看>>
    从零开始学算法(一)
    查看>>
    d3d 纹理坐标1:1对应到屏幕坐标.
    查看>>
    SQL Server优化器特性-隐式谓词
    查看>>