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中呢?这位读者平时也是很 ...
随机推荐
- spring的@Transactional(rollbackFor=Exception.class)的使用
Spring框架的事务基础架构代码将默认地只在抛出运行时和unchecked exceptions时才标识事务回滚. 也就是说,当抛出个RuntimeException 或其子类例的实例时.(Erro ...
- 吴恩达深度学习第1课第4周-任意层人工神经网络(Artificial Neural Network,即ANN)(向量化)手写推导过程(我觉得已经很详细了)
学习了吴恩达老师深度学习工程师第一门课,受益匪浅,尤其是吴老师所用的符号系统,准确且易区分. 遵循吴老师的符号系统,我对任意层神经网络模型进行了详细的推导,形成笔记. 有人说推导任意层MLP很容易,我 ...
- 排序分析函数中对null的处理
--排序分析函数中对null的处理 --分析:对于null在分析函数中是升序默认是nulls last,降序默认是nulls first.如果不指定排序,那么是升序 )); ,'测试1'); ,'测试 ...
- __str__与__repr__
在讲解之前,我们先来了解下str和repr的区别:两者都是用来将数字,列表等类型的数据转化为字符串的形式.不同之处在于str更加类似于C语言中使用printf输出的内容,而repr输出的内容会直接将变 ...
- NLP系列(4)_朴素贝叶斯实战与进阶
作者: 寒小阳 && 龙心尘 时间:2016年2月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/50629608 htt ...
- log4j日志记录级别是如何工作?
级别p的级别使用q,在记录日志请求时,如果p>=q启用.这条规则是log4j的核心.它假设级别是有序的.对于标准级别它们关系如下:ALL < DEBUG < INFO < WA ...
- Objective-C构造方法
Objective-C构造方法 构造方法:用来初始化的方法 创建对象的原理 之前我们创建对象的方式一直是使用[Xxx new] 但是使用 new 创建的对象,都是给我们默认做了初始化的. 有的时候,我 ...
- TV Metro界面(仿泰捷视频TV版)源码解析
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52822499 前言:上一篇介绍了 ...
- Dynamics CRM2016 Web API之通过实体的primary key查询记录(二)
继续接上篇,还是通过primary key来查询数据,本篇介绍两个我个人比较喜欢的查询方式,一个是查询单个字段,一个是查询lookup关联实体中的属性字段. 先来看如何查询单个字段,只需要在url的最 ...
- 根据ccid取得账户,更改某段值再创建账户,返回新的ccid
CREATE OR REPLACE PACKAGE cux_cuxaprebate_utl IS * =============================================== * ...