JUI/DWZ 分页 Servlet
分页介绍
分页组件参数要由服务器传过来targetType,totalCount,numPerPage,pageNumShown,currentPage 。框架会自动把下面的form中pageNum修改后,ajax重新发请求。下面这个form是用来存查询条件的
1
2
3
4
5
6
7
8
9
10
11
12
|
< form id = "pagerForm" action = "xxx" method = "post" > < input type = "hidden" name = "pageNum" value = "1" />/> <!--【必须】value=1可以写死--> < input type = "hidden" name = "numPerPage" value = "20" /> <!--【可选】每页显示多少条--> < input type = "hidden" name = "orderField" value = "xxx" /> <!--【可选】查询排序--> < input type = "hidden" name = "orderDirection" value = "asc" /> <!--【可选】升序降序--> <!--【可选】其它查询条件,业务有关,有什么查询条件就加什么参数。 也可以在searchForm上设置属性rel=”pagerForm”,js框架会自动把searchForm搜索条件复制到pagerForm中 --> < input type = "hidden" name = "name" value = "xxx" /> < input type = "hidden" name = "status" value = "active" /> …… </ form > |
|
navTabSearch(this);" 等都要修改(dialogSearch(this)))
实际应用
前台(JSP):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < div class = "pageHeader" > < form id = "pagerForm" rel = "pagerForm" onsubmit = "return navTabSearch(this);" action = "user" method = "post" > < input type = "hidden" name = "pageNum" value = "1" /> < input type = "hidden" name = "numPerPage" value = "${dwzPage.numPerPage}" /> < input type = "hidden" name = "method" value = "page" /> < div class = "searchBar" > < table class = "searchContent" > < tr > < td > 手机:< input type = "text" name = "phone" value = "${phone}" /> </ td > < td > 名字:< input type = "text" name = "name" value = "${name}" /> </ td > < td > < select class = "combox" name = "status" > < option value = "" >用户状态</ option > < option value = "0" <c:if test = "${0 == status }" >selected="selected"</ c:if >>未激活</ option > < option value = "1" <c:if test = "${1 == status }" >selected="selected"</ c:if >>已激活</ option > < option value = "2" <c:if test = "${2 == status }" >selected="selected"</ c:if >>拒绝</ option > < option value = "3" <c:if test = "${3 == status }" >selected="selected"</ c:if >>取消关注</ option > < option value = "4" <c:if test = "${4 == status }" >selected="selected"</ c:if >>离职</ option > < option value = "5" <c:if test = "${5 == status }" >selected="selected"</ c:if >>黑名单</ option > </ select > </ td > </ tr > </ table > < div class = "subBar" > < ul > < li >< div class = "buttonActive" >< div class = "buttonContent" >< button type = "submit" >检索</ button ></ div ></ div ></ li > </ ul > </ div > </ div > </ form > </ div > < div class = "pageContent" > < div class = "panelBar" > < ul class = "toolBar" > < li >< a class = "edit" href = "user?method=editPage&uid={sid_user}" target = "navTab" warn = "请选择一个用户" >< span >修改</ span ></ a ></ li > < li class = "line" >line</ li > < li >< a title = "确实要设置为管理员吗?" target = "selectedTodo" rel = "ids" href = "user?method=setAdmin" class = "add" >< span >设置为管理员</ span ></ a ></ li > < li class = "line" >line</ li > </ ul > </ div > < table class = "table" width = "100%" layoutH = "138" > < thead > < tr > < th width = "22" >< input type = "checkbox" group = "ids" class = "checkboxCtrl" ></ th > < th width = "70" >姓名</ th > < th width = "120" >手机</ th > < th width = "80" >用户状态</ th > < th width = "120" >用户类型</ th > < th >备注</ th > </ tr > </ thead > < tbody > < c:forEach items = "${dwzPage.list }" var = "user" > < tr target = "sid_user" rel = "${user.id }" > < td >< input name = "ids" value = "${user.id }" type = "checkbox" ></ td > < td >${user.name }</ td > < td >${user.phone }</ td > < c:if test = "${user.status==0 }" > < td >未激活</ td > </ c:if > < c:if test = "${user.status==1 }" > < td >已激活</ td > </ c:if > < c:if test = "${user.status==2 }" > < td >拒绝</ td > </ c:if > < c:if test = "${user.status==3 }" > < td >取消关注</ td > </ c:if > < c:if test = "${user.status==4 }" > < td >离职</ td > </ c:if > < c:if test = "${user.status==5 }" > < td >黑名单</ td > </ c:if > < c:if test="${user.status>5 }"> < td >其他</ td > </ c:if > < c:if test = "${user.type==0 }" > < td >管理员</ td > </ c:if > < c:if test = "${user.type==1 }" > < td >普通用户</ td > </ c:if > < c:if test="${user.type>1 }"> < td >其他</ td > </ c:if > < td >${user.remark }</ td > </ tr > </ c:forEach > </ tbody > </ table > < div class = "panelBar" > < div class = "pages" > < span >显示</ span > < select class = "combox" name = "numPerPage" onchange = "navTabPageBreak({numPerPage:this.value})" > <!-- <select class="combox" name="numPerPage" onchange="dialogPageBreak({numPerPage:this.value})"> --> < option value = "10" <c:if test = "${10 == dwzPage.numPerPage }" >selected="selected"</ c:if >>10</ option > < option value = "20" <c:if test = "${20 == dwzPage.numPerPage }" >selected="selected"</ c:if >>20</ option > < option value = "50" <c:if test = "${50 == dwzPage.numPerPage }" >selected="selected"</ c:if >>50</ option > </ select > < span >条,共${dwzPage.totalCount}条</ span > </ div > < div class = "pagination" targetType = "navTab" totalCount = "${dwzPage.totalCount}" numPerPage = "${dwzPage.numPerPage }" pageNumShown = "${dwzPage.pageNumShown }" currentPage = "${dwzPage.currentPage }" ></ div > <%-- < div class = "pagination" targetType = "dialog" totalCount = "${dwzPage.totalCount}" numPerPage = "${dwzPage.numPerPage }" pageNumShown = "10" currentPage = "${dwzPage.pageNum }" ></ div > --%> <!-- <div class="pagination" targetType="navTab" totalCount="200" numPerPage="20" pageNumShown="10" currentPage="1"></div> --> </ div > </ div > |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
package com.qsachina.util; import java.util.List; public class DwzPage { private int currentPage = 1 ; // 当前页数,默认第一页 private int numPerPage = 20 ; // 每页个数,默认20 private int totalCount = 0 ; // 总数,默认0 private int pageNumShown = 10 ; // 页标数字多少个,默认10 private String orderField; // 排序方式 private String orderDirection; // 升序降序 private List<Object> list; // 返回的集合 public int getNumPerPage() { return numPerPage; } public void setNumPerPage( int numPerPage) { this .numPerPage = numPerPage; } public int getTotalCount() { return totalCount; } public void setTotalCount( int totalCount) { this .totalCount = totalCount; } public String getOrderField() { return orderField; } public void setOrderField(String orderField) { this .orderField = orderField; } public String getOrderDirection() { return orderDirection; } public void setOrderDirection(String orderDirection) { this .orderDirection = orderDirection; } public List<Object> getList() { return list; } public void setList(List<Object> list) { this .list = list; } public int getPageNumShown() { return pageNumShown; } public void setPageNumShown( int pageNumShown) { this .pageNumShown = pageNumShown; } public int getCurrentPage() { return currentPage; } public void setCurrentPage( int currentPage) { this .currentPage = currentPage; } } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
// 组装查询条件 String name = request.getParameter( "name" ); String phone = request.getParameter( "phone" ); String status = request.getParameter( "status" ); Map<String, String> params = new HashMap<>(); if (StringUtil.isNotEmpty(name)){ // name等参数可能是null params.put( "name" , name.trim()); request.setAttribute( "name" , name.trim()); // 查询条件设置回前台 } if (StringUtil.isNotEmpty(phone)){ params.put( "phone" , phone.trim()); request.setAttribute( "phone" , phone.trim()); } if (StringUtil.isNotEmpty(status)){ params.put( "status" , status.trim()); request.setAttribute( "status" , status.trim()); } // 分页 String currentPage = request.getParameter( "pageNum" ); String numPerPage = request.getParameter( "numPerPage" ); DwzPage dwzPage = userService.getPageByParams(params,currentPage,numPerPage); request.setAttribute( "dwzPage" , dwzPage); request.getRequestDispatcher(page).forward(request, response); |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
/** * * @param params * 查询条件 * @param currentPage * 当前页 * @param numPerPage * 每页个数 * @return 分页实体类 */ public DwzPage getPageByParams(Map<String, String> params, String currentPage, String numPerPage) { DwzPage dwzPage = new DwzPage(); if (StringUtil.isNotEmpty(currentPage)){ dwzPage.setCurrentPage(Integer.parseInt(currentPage)); } if (StringUtil.isNotEmpty(numPerPage)){ dwzPage.setNumPerPage(Integer.parseInt(numPerPage)); } List<Object> userList = new ArrayList<>(); StringBuffer sbSQL = new StringBuffer(); // 查询的sql StringBuffer countSbSQL = new StringBuffer(); // 计算总个数sql sbSQL.append( "select * from wb_user where 0=0 " ); countSbSQL.append( "SELECT COUNT(id) as count FROM wb_user where 0=0 " ); Iterator<String> it = params.keySet().iterator(); while (it.hasNext()) { String key = (String) it.next(); sbSQL.append( " and " ).append(key).append( " like '%" ).append(params.get(key)).append( "%'" ); countSbSQL.append( " and " ).append(key).append( " like '%" ).append(params.get(key)).append( "%'" ); } sbSQL.append( " ORDER BY create_date ASC" ); // 分页 sbSQL.append( " LIMIT " ).append((dwzPage.getCurrentPage() - 1 ) * dwzPage.getNumPerPage()).append( "," ) .append(dwzPage.getNumPerPage()); ResultSet rs = null ; ResultSet rsCount = null ; User user = null ; try { rs = this .executeQuery(sbSQL.toString(), null ); rsCount = this .executeQuery(countSbSQL.toString(), null ); while (rs.next()) { user = new User(); user.setId(rs.getLong( "id" )); user.setName(rs.getString( "name" )); user.setOpenId(rs.getString( "openId" )); user.setPhone(rs.getString( "phone" )); user.setStatus(rs.getInt( "status" )); user.setType(rs.getInt( "type" )); user.setRemark(rs.getString( "remark" )); user.setCreateDate(rs.getTimestamp( "create_date" )); user.setUpdateDate(rs.getTimestamp( "update_date" )); userList.add(user); } while (rsCount.next()) { dwzPage.setTotalCount(rsCount.getInt( 1 )); // 设置总数 } } catch (SQLException e) { e.printStackTrace(); } finally { this .close(conn, pstmt, rs); } dwzPage.setList(userList); return dwzPage; } |
密码 阿宓生日,链接:http://pan.baidu.com/s/1kTtRWW3 密码:tzpc
《DWZ笔记五》联动菜单等可以参考此博客http://heavengate.blog.163.com/blog/#m=0&t=1&c=fks_084070086081084067086082083095086086083064092087086070087
JUI/DWZ 分页 Servlet的更多相关文章
- 将j-ui(dwz)套用到thinkphp注意事项
目前我用的 thinkphp 版本是 3.1.3 J-UI dwz 版本好像是 1.4 现在 j-ui有 thinkphp的例子了,请尽量以他们原创为主,我这里都是一些自己搜集和自己钻研的土办法, ...
- RoadFlow工作流与JUI(DWZ)前端框架的集成
此文只说明RoadFlow前端与JUI的集成,关于程序和接口请参照WebForm或MVC文档. 修改JUI配置文件dwz.frag.xml,此文件一般位于JUI根目录下. 2.修改文件js/dwz.n ...
- DWZ分页、排序失效小结
1. 在视图文件中与分页相关的代码段 <form id="pagerForm" method="post" action="w_list.htm ...
- dwz分页实现分析
dwz给我们提供了一个很好的列表UI 我对它的分析后将页面分为四个部分 <form id="pagerForm" method="post" action ...
- JUI/DWZ介绍、简单使用
简介 由于开发的项目使用JUI,所以学习了. DWZ富客户端框架(jQuery RIAframework), 是中国人自己开发的基于jQuery实现的Ajax RIA开源框架.(现在更名为JUI) 可 ...
- Java——分页 Servlet + Jsp+Jdbc 有点瑕疵
1.创建数据库,插入多条数据 2.java连接DB 3.Person类: package com.phome.po; public class Person { private int id; pri ...
- dwz 分页 bug (选回 combox 第一个值时不执行 onchange)
先看一下官方的测试: 官方的演示有两个 bug 一个是combox数字一直不变,二是当选回第一个值时不执行 onchange 事件. 经过firebug调试,这是一个bug,传到后台的参数没有得到及时 ...
- EasyUI表格DataGrid前端分页和后端分页的总结
Demo简介 Demo使用Java.Servlet为后台代码(数据库已添加数据),前端使用EasyUI框架,后台直接返回JSON数据给页面 1.配置Web.xml文件 <?xml version ...
- 【Spring注解驱动开发】面试官:如何将Service注入到Servlet中?朋友又栽了!!
写在前面 最近,一位读者出去面试前准备了很久,信心满满的去面试.没想到面试官的一个问题把他难住了.面试官的问题是这样的:如何使用Spring将Service注入到Servlet中呢?这位读者平时也是很 ...
随机推荐
- IntelliJ IDEA设置统一编码utf-8
File菜单->Other Settings->Default Settings->File Encodings 全改成utf-8!
- Java实现23种设计模式
一.设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接 ...
- Printer for Me
今天,良心系部终于给我配了打印机^^. 办公室门外还挂了牌子.
- Python中求1到20平方的两种方法
#1.使用列表推导式 >>> [x**2 for x in range(1,21)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, ...
- MongoDB 自动增长
MongoDB 没有像 SQL 一样有自动增长的功能, MongoDB 的 _id 是系统自动生成的12字节唯一标识. 但在某些情况下,我们可能需要实现 ObjectId 自动增长功能. 由于 Mon ...
- RunLoop总结:RunLoop 与GCD 、Autorelease Pool之间的关系
如果在面试中问到RunLoop相关的知识,很有可能也会问到RunLoop与GCD.Autorelease Pool有没有关系,哪些地方用到了GCD.Autorelease Pool等. So,本文就总 ...
- [BBS]搭建开源论坛之JForum富文本编辑器更换
本文作者:sushengmiyan 本文地址:http://blog.csdn.net/sushengmiyan/article/details/47866905 上一节我们将开发环境搭建完成,我们 ...
- Memcached - Base
Memcached 标签 : Java与NoSQL 在程序的实现中, 经常会忽略程序的运行时间. 即使采用类似的实现方法, 有时候运行速度也会相差很多. 大多数情况下, 这一速度上的差异是由数据访问速 ...
- 移动开发测试工具——Bugtags的集成
移动开发测试工具--Bugtags 官网:https://bugtags.com/ 注册开发者账号 注册账号并激活邮箱,都会就不多做介绍了. 创建应用 创建完账号以后会提示添加应用,点击添加 添加应用 ...
- jvm java虚拟机 新生代的配置
1.1.1.1. -Xmn参数 参数-Xmn1m可以用于设置新生代的大小.设置一个较大的新生代会影响老生代的大小,因为这两者的总和是一定的,这个系统参数对于系统性能以及GC行为有很大的影响,新生代一般 ...