note_cloud--搜索笔记功能(已经分享了的笔记)(两个功能)
来源:互联网 发布:汇鑫通网络支付 编辑:程序博客网 时间:2024/05/29 10:29
功能:用户输入收索的关键词,然后回车触发查询
------------------------------------------------------------------------------
发送ajax请求
发送事件:输入关键词后,点击回车(按键监听事件)
$("#search_note").keydown(function(event){ var code=event.keyCode; if(code==13){ 请求发送 }})请求参数:输入的关键词
请求地址:/share/search.do
服务器处理
Controller
Service
Dao
cn_share(select操作 模糊查询)
select * from cn_share where cn_share_title like =#{keyword} limit #{begin} , 3;
ajax回调处理
success:
1.影藏笔记列表的DIV(id='pc_part_2')调用hide方法
2.显示收索笔记结果列表(id='pc_part_6')
3.将解析后的结果添加到列表里面
error:提示收索失败
------------------------------------------------------------------------------
Share实体类:
public class Share implements Serializable{private String cn_share_id;private String cn_share_title;private String cn_share_body;private String cn_note_id;
------------------------------------------------------------------------------
Dao接口:
//搜索笔记(已经分享过的笔记)public List<Share> findByTitle(Map params);注意:单击回车键之后进行模糊查询,且显示第一页,具有分页功能,所以需要传递两个参数(搜索的关键词语和页码--此处页码设置为1)
------------------------------------------------------------------------------
映射文件:
<!-- 搜索笔记(已经分享过的笔记) --> <!-- 此种方法也可以,案例中是在Service层进行模糊匹配 select * from cn_share where cn_share_title like concat('%',#{title},'%') --> <select id="findByTitle" parameterType="map" resultType="cn.tedu.cloud_note.entity.Share"> select * from cn_share where cn_share_title like #{keyword} limit #{begin},3 </select>
------------------------------------------------------------------------------
业务层接口:
//搜索笔记public NoteResult<List<Share>> searchNote(String title,int page);
------------------------------------------------------------------------------
业务层实现类:
//搜索笔记public NoteResult<List<Share>> searchNote(String title,int page) {NoteResult<List<Share>> result = new NoteResult<List<Share>>();//模糊查询的匹配,也可以在映射文件进行%的匹配String keyword = "%";if(keyword != null && !keyword.equals("")){keyword = "%" + title + "%";//若title为空字符串则查询全部}int begin = (page - 1)*3;//计算抓取记录的起点Map<String,Object> params = new HashMap<String,Object>();params.put("keyword", keyword);params.put("begin", begin);List<Share> list = shareDao.findByTitle(params);if(list == null || list.size() == 0){//没有查到相关Share实例result.setStatus(1);result.setMsg("没有查到相关笔记");return result;}result.setStatus(0);result.setMsg("搜索笔记成功");result.setData(list);return result;}
注意:在业务层中对传入的搜索关键字进行匹配(添加%),然后将匹配后的参数传入Dao,并调用,若接收到的参数为空字符串,则相当于查询所有的分享笔记
------------------------------------------------------------------------------
控制层Controller:
package cn.tedu.cloud_note.controller;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import cn.tedu.cloud_note.entity.Share;import cn.tedu.cloud_note.service.ShareService;import cn.tedu.cloud_note.util.NoteResult;@Controller@RequestMapping("/share")public class SearchNoteController {@Resource(name="shareService")private ShareService service;//分享笔记@RequestMapping("/search.do")@ResponseBodypublic NoteResult<List<Share>> execute(String title,int page){NoteResult<List<Share>> result = service.searchNote(title);return result;}}
------------------------------------------------------------------------------
HTML部分代码:
//绑定搜索笔记,按回车,搜索结果分页显示(已经分享过的笔记,默显示第一页)$("#search_note").keydown(searchShareNote);//点击更多按钮,加载下一页(更多......)$("#more_note").on("click",moreSearchShare);
------------------------------------------------------------------------------
调用的JS代码:
//点击更多按钮,加载查询结果的下一页......(分页功能)function moreSearchShare(){//获取请求参数var title = $("#search_note").val().trim();page = page + 1;//alert(title+":"+page);//发送ajax请求,加载列表loadPageShare(title,page);}//按回车,加载搜索结果的第一页(已经分享过的笔记,默显示第一页)function searchShareNote(event){var code = event.keyCode;if(code == 13){//清空已有的Share列表$("#share_ul li").empty();//获取请求参数var title = $("#search_note").val().trim();//alert(title);//发送ajax请求page = 1;loadPageShare(title,page);}}//发送ajax请求function loadPageShare(title,page){ $.ajax({ url:path + "/share/search.do", type:"post", data:{"title":title,"page":page}, dataType:"json", success:function(result){ if(result.status == 0){ //获取数据 var list = result.data;//Share的集合 //将显示笔记的DIV隐藏,更换为搜索笔记的DIV $("#pc_part_2").hide(); $("#pc_part_6").show(); //将数据写入搜索笔记的li for(var i=0;i<list.length;i++){ //记录ID var shareId =list[i].cn_note_id; //记录标题 var shareTitle = list[i].cn_share_title; //创建li对象 var $li = $('<li class="online">'+'<a>'+'<i class="fa fa-file-text-o" title="online" rel="tooltip-bottom"></i>'+ shareTitle + '</a>'+'</li>'); //绑定shareId $li.data("shareId",shareId); //将li添加到ul中 $("#share_ul").append($li); } } }, error:function(){alert("搜索笔记失败");}});}
------------------------------------------------------------------------------
测试结果:
注意:在单击笔记本显示笔记列表时候要将其DIV显示,隐藏搜索share笔记的DIV,在单击更多......的时候,也是进行分页,此时可以调用相同的ajax
- note_cloud--搜索笔记功能(已经分享了的笔记)(两个功能)
- note_cloud--笔记分享功能
- note_cloud--删除笔记功能
- note_cloud--登录功能
- note_cloud--注册功能
- note_cloud--笔记本加载功能
- note_cloud--修改密码功能
- delphi7写的个人笔记(模版功能已经实现)介绍三
- note_cloud--加载笔记列表
- note_cloud--创建笔记
- Android组件学习笔记(分享文字以及图片功能)
- 社交网站分享功能笔记
- 心愿作品——图片搜索系统(功能可用了,下一步布置到公网。笔记更新...)
- android学习笔记(5)-一个搜索文件的APP(2)-搜索功能的实现
- PHP的Smarty完全笔记(已经佷详细了)
- note_cloud--显示笔记下拉菜单
- [笔记分享] [Camera] msm8926的ZSL功能小结
- [笔记分享] [Camera] 相机的一些附加功能
- linux下devicetree中常用的of函数
- 为你讲述陈岷学医的缘
- 自学Unity3D游戏开发(5)
- disconf——zk部署为空
- 大数据方案关键因素
- note_cloud--搜索笔记功能(已经分享了的笔记)(两个功能)
- wireshark基本用法及过虑规则
- 『R语言初学』Day1
- php的echo 和 return的区别
- Android EditText 添加烟花效果
- 华容道 洛谷1979 bfs+spfa
- ORA-14402:updating partition key column would cause a partition change
- 将一个列表的数据复制到另一个列表中。
- 对于函数重载-函数覆盖-函数隐藏的区别