本篇主要介绍了grid的ajax功能以及分页标签功能,具体看代码吧,注释很全面,感慨一下组件还是比较实用和漂亮的!
为介绍方便简洁,这里没有使用数据库,而直接创建了一些对象,参考者可以自己改成数据库即可。
JSP页面部分:
下面是后台search.do部分(注意实用了json数据类型,请加入json相关的包):
public ActionForward SearchAjax(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Integer start = Integer.valueOf(request.getParameter("start")); Integer limit = Integer.valueOf(request.getParameter("limit")); System.out.println("start:" + start + "|limit:" + limit); String sort = request.getParameter("sort"); String dir = request.getParameter("dir"); if (StringUtils.isBlank(sort)) { sort = "id"; } if (StringUtils.isBlank(dir)) { dir = "ASC"; } System.out.println("sort:" + sort + "|" + dir); List<GridVO> lists = new ArrayList<GridVO>(); GridVO vo = new GridVO(); vo.setId(1); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name1"); vo.setDesc("descn1"); lists.add(vo); vo = new GridVO(); vo.setId(2); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name2"); vo.setDesc("descn2"); lists.add(vo); vo = new GridVO(); vo.setId(3); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name3"); vo.setDesc("descn3"); lists.add(vo); vo = new GridVO(); vo.setId(4); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name4"); vo.setDesc("descn4"); lists.add(vo); vo = new GridVO(); vo.setId(5); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name5"); vo.setDesc("descn5"); lists.add(vo); vo = new GridVO(); vo.setId(6); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name6"); vo.setDesc("descn6"); lists.add(vo); vo = new GridVO(); vo.setId(7); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name7"); vo.setDesc("descn7"); lists.add(vo); vo = new GridVO(); vo.setId(8); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name8"); vo.setDesc("descn8"); lists.add(vo); vo = new GridVO(); vo.setId(9); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name9"); vo.setDesc("descn9"); lists.add(vo); vo = new GridVO(); vo.setId(10); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name10"); vo.setDesc("descn10"); lists.add(vo); vo = new GridVO(); vo.setId(11); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name11"); vo.setDesc("descn11"); lists.add(vo); vo = new GridVO(); vo.setId(12); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name12"); vo.setDesc("descn12"); lists.add(vo); vo = new GridVO(); vo.setId(13); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name13"); vo.setDesc("descn13"); lists.add(vo); vo = new GridVO(); vo.setId(14); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name14"); vo.setDesc("descn14"); lists.add(vo); vo = new GridVO(); vo.setId(15); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name15"); vo.setDesc("descn15"); lists.add(vo); vo = new GridVO(); vo.setId(16); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name16"); vo.setDesc("descn16"); lists.add(vo); vo = new GridVO(); vo.setId(17); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name17"); vo.setDesc("descn17"); lists.add(vo); vo = new GridVO(); vo.setId(18); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name18"); vo.setDesc("descn18"); lists.add(vo); vo = new GridVO(); vo.setId(19); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name19"); vo.setDesc("descn19"); lists.add(vo); vo = new GridVO(); vo.setId(20); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name20"); vo.setDesc("descn20"); lists.add(vo); vo = new GridVO(); vo.setId(21); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name21"); vo.setDesc("descn21"); lists.add(vo); vo = new GridVO(); vo.setId(22); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name22"); vo.setDesc("descn22"); lists.add(vo); vo = new GridVO(); vo.setId(23); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name23"); vo.setDesc("descn23"); lists.add(vo); vo = new GridVO(); vo.setId(24); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name24"); vo.setDesc("descn24"); lists.add(vo); vo = new GridVO(); vo.setId(25); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name25"); vo.setDesc("descn25"); lists.add(vo); vo = new GridVO(); vo.setId(26); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name26"); vo.setDesc("descn26"); lists.add(vo); vo = new GridVO(); vo.setId(27); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name27"); vo.setDesc("descn27"); lists.add(vo); vo = new GridVO(); vo.setId(28); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name28"); vo.setDesc("descn28"); lists.add(vo); vo = new GridVO(); vo.setId(29); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name29"); vo.setDesc("descn29"); lists.add(vo); vo = new GridVO(); vo.setId(30); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name30"); vo.setDesc("descn30"); lists.add(vo); vo = new GridVO(); vo.setId(31); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name31"); vo.setDesc("descn31"); lists.add(vo); vo = new GridVO(); vo.setId(32); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name32"); vo.setDesc("descn32"); lists.add(vo); vo = new GridVO(); vo.setId(33); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name33"); vo.setDesc("descn33"); lists.add(vo); vo = new GridVO(); vo.setId(34); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name34"); vo.setDesc("descn34"); lists.add(vo); vo = new GridVO(); vo.setId(35); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name35"); vo.setDesc("descn35"); lists.add(vo); vo = new GridVO(); vo.setId(36); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name36"); vo.setDesc("descn36"); lists.add(vo); vo = new GridVO(); vo.setId(37); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name37"); vo.setDesc("descn37"); lists.add(vo); vo = new GridVO(); vo.setId(38); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name38"); vo.setDesc("descn38"); lists.add(vo); vo = new GridVO(); vo.setId(39); vo.setTime(dateFormat()); vo.setSex("male"); vo.setName("name39"); vo.setDesc("descn39"); lists.add(vo); vo = new GridVO(); vo.setId(40); vo.setTime(dateFormat()); vo.setSex("female"); vo.setName("name40"); vo.setDesc("descn40"); lists.add(vo); // 排序 lists = sortObj(lists, sort, dir); SearchVO searchVO = new SearchVO(); searchVO.setTotalCount(lists.size()); lists = findCurrentPageObj(lists, start, limit); searchVO.setGrids(lists); JSONObject obj = JSONObject.fromObject(searchVO); System.out.println(obj.toString()); response.setContentType("text/xml;charset=utf-8"); response.getWriter().print(obj.toString()); return null; } private List<GridVO> sortObj(List<GridVO> list, String sort, String dir) { Set<ResultTokenDelegate> someSet = new TreeSet<ResultTokenDelegate>(); List<GridVO> result = new ArrayList<GridVO>(); for (GridVO res : list) { ResultTokenDelegate delegate = new ResultTokenDelegate(res, sort, dir); someSet.add(delegate); } Iterator iterator = someSet.iterator(); while (iterator.hasNext()) { ResultTokenDelegate delegate = (ResultTokenDelegate) iterator .next(); result.add(delegate.getResult()); } return result; } List<GridVO> findCurrentPageObj(List<GridVO> list, int start, int limit) { List<GridVO> vos = new ArrayList<GridVO>(); for (int i = 0; i < list.size(); i++) { if (i >= start && i < (start + limit)) { vos.add(list.get(i)); } } return vos; } String dateFormat() { SimpleDateFormat smf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Date date = new Date(System.currentTimeMillis()); return smf.format(date); }
ResultTokenDelegate类的代码,用来为list对象排序的:
GridVO类的代码:
package com.xuyi.vo; public class GridVO { int id; String sex; String name; String desc; String time; public String getTime() { return time; } public void setTime(String time) { this.time = time; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
SearchVO的代码: