博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用户模块 之 完成用户列表的分页显示
阅读量:5290 次
发布时间:2019-06-14

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

初始时页面的效果,其页面的数据都是写固定的:

其html代码:

1   2   3     4     5     
6 泉师释疑 7
8
9
10
11
12
13 14 15 16
17
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
共有数据:88 条 47
48
49
50
51
54
55
56
57
58
59
60
61
62
63
64
65
66
69
70
71
72
73
74
75
76
78
92
93
94
97
98
99
100
101
102
103
104
106
120
121
122
52
53
ID 用户名 性别 手机 邮箱 地址 加入时间 状态 操作
67
68
1 小明 13000000000 admin@mail.com 北京市 海淀区 2017-01-01 11:11:42 77 已启用 79 80 81 82 83 84 85 86 87 88 89 90 91
95
96
1 小明 13000000000 admin@mail.com 北京市 海淀区 2017-01-01 11:11:42 105 已启用 107 108 109 110 111 112 113 114 115 116 117 118 119
123
124
125
126
1127
2128
3129
489130
131
132
133 134
135 196 202 203 204
member_list.html

 

将html代码转换为jsp改为user_list.jsp

1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  2 <%@ taglib uri="/struts-tags" prefix="s"%>  3   4   5   6     7     8     
9 泉师释疑 10
11
12
13
14
15
16 17 18 19
20
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
共有数据:88 条 50
51
52
53
54
57
58
59
60
61
62
63
64
65
66
67
68
69
72
73
74
75
76
77
78
79
81
95
96
97
100
101
102
103
104
105
106
107
109
123
124
125
55
56
ID 用户名 性别 手机 邮箱 地址 加入时间 状态 操作
70
71
1 小明 13000000000 admin@mail.com 北京市 海淀区 2017-01-01 11:11:42 80 已启用 82 83 84 85 86 87 88 89 90 91 92 93 94
98
99
1 小明 13000000000 admin@mail.com 北京市 海淀区 2017-01-01 11:11:42 108 已启用 110 111 112 113 114 115 116 117 118 119 120 121 122
126
127
128
129
1130
2131
3132
489133
134
135
136 137
138 199 205 206 207
user_list.jsp

并在index.jsp中将用户列表的a标签中的链接改为:

在web层创建一个类UserAction.java在其中创建一个方getAllUser

 

 

//获取用户列表    public String getAllUser() throws Exception {                    return "userList";    }

 

将用户列表的信息通过分页的方法展示于页面

分析分页的显示

需要5个参数,通过起始页与页面大小可以知道list,list可以填充下图:

 

 

需要总页数与总条数可以填充页面的共有的数据:

 

 

分页的显示的总的分析:

 

 

 

书写PagePean与使用PagePean分析分页

在util层创建PagePean.java类

 

package com.guiyan.utils;import java.util.List;public class PageBean {    private Integer currentPage;//起始页    private Integer pageSize;//页面大小    private Integer totalPage;//总页数((总条数/页面大小)向上取整)    private Integer totalCount;//总条数  select count(*)    private List list;//list        public PageBean(Integer currentPage, Integer pageSize,Integer totalCount)    {        this.currentPage = currentPage;        this.pageSize = pageSize;        this.totalCount = totalCount;                if(this.currentPage == null)        {            this.currentPage = 1;        }        if(this.pageSize == null)        {            this.pageSize = 5;//默认显示5条        }                                if(this.currentPage > this.totalPage)        {            this.currentPage = this.totalPage;        }        if(this.currentPage < 1)        {            this.currentPage = 1;        }                        //自动算出总页数 ,进行向上取整      this.totalPage = (int) Math.ceil(1.0* this.totalCount / this.pageSize );                            }        public Integer getCurrentPage() {        return currentPage;    }    public void setCurrentPage(Integer currentPage) {        this.currentPage = currentPage;    }    public Integer getPageSize() {        return pageSize;    }    public void setPageSize(Integer pageSize) {        this.pageSize = pageSize;    }    public Integer getTotalPage() {        return totalPage;    }    public void setTotalPage(Integer totalPage) {        this.totalPage = totalPage;    }    public Integer getTotalCount() {        return totalCount;    }    public void setTotalCount(Integer totalCount) {        this.totalCount = totalCount;    }    public List getList() {        return list;    }    public void setList(List list) {        this.list = list;    }                    }

 

使用PagePean分析分页

 

 需要进行访问两次数据库

 

书写分页代码

封装PageBean,访问service

 

在UserAction.java中的getAllUser()方法中写入ActionContext.put

//得到所有用户    public String getAllUser() throws Exception {                PageBean userPageBean = userService.getUserPageBean();        ActionContext.getContext().put("userPageBean", userPageBean);            return "userList";    }

 

在service层中userService创建方法getUserPageBean
public PageBean getUserPageBean(null ) {                Integer totalCount = userDao.getAllUser();        PageBean pageBean = new PageBean(null, 6, totalCount);//封装的pageBean        List
list = userDao.getPageBeanList(pageBean);
pageBean.setList(list); return pageBean;  }

 

由于起始索引与起始页相差1,起始索引是从0开始,起始页从1开始

因此在PageBean中写入getStart方法:

public Integer getStart()    {        return (this.currentPage - 1)*this.pageSize;    }

 

 

在dao层中的UserDao中写入方法getPageBeanList

public List getPageBeanList(PageBean pageBean) {        Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();        String sql = "select * from user   limit ?,?";        NativeQuery query = session.createSQLQuery(sql);        query.addEntity(User.class);                query.setParameter(1, pageBean.getStart());//起始索引,在PageBean.java封装了该方法        query.setParameter(2, pageBean.getPageSize());        List list = query.list();        return list;    }

 

配置struts.xml
/user-list.jsp

配置spring进行注入:

 

进行前端代码的书写:

 

user_list.jsp

ID 用户名 密码 真实姓名 邮箱 电话 状态 等级 操作
">
已启用 未启用

创建user实体

package com.guiyan.domain;public class User {    private String id;    private String username;    private String password;    private String name;    private String email;    private String telephone;    private Integer state;    private String code;    private String image;    private Integer level;    private Integer coin;    private Integer isdelete;    private String createtime;        public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }    public String getTelephone() {        return telephone;    }    public void setTelephone(String telephone) {        this.telephone = telephone;    }        public String getCode() {        return code;    }    public void setCode(String code) {        this.code = code;    }    public String getImage() {        return image;    }    public void setImage(String image) {        this.image = image;    }    public Integer getLevel() {        return level;    }    public void setLevel(Integer level) {        this.level = level;    }    public Integer getCoin() {        return coin;    }    public void setCoin(Integer coin) {        this.coin = coin;    }    public Integer getIsdelete() {        return isdelete;    }    public void setIsdelete(Integer isdelete) {        this.isdelete = isdelete;    }    public String getCreatetime() {        return createtime;    }    public void setCreatetime(String createtime) {        this.createtime = createtime;    }    public Integer getState() {        return state;    }    public void setState(Integer state) {        this.state = state;    }                }

 

创建orm元数据

在domain创建一个User.hbm.xml

 统计共有的数据:

在user_list.jsp中写入:

            共有数据:            

 

数据库中用户的数量为:

 

 

当点击用户列表的时候,数据库中的所有数据都会通过sql语句的查询,将所需要的信息显示在页面上:

 

 

分页显示

 

 

 

 

 以上实现的分页效果demo:

在user_list.jsp中进行修改为:

"><<
">
">
">
">
>尾页
>>>

 

在UserAction.java中进行定义属性:

private Integer currentPage;//得到所有用户    public String getAllUser() throws Exception {                PageBean userPageBean = userService.getUserPageBean(currentPage);                ActionContext.getContext().put("userPageBean", userPageBean);                return "userList";    }

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/jiguiyan/p/10892405.html

你可能感兴趣的文章
bzoj2257
查看>>
Linux查看文件编码格式及文件编码转换<转>
查看>>
Leetcode: Find Leaves of Binary Tree
查看>>
Vue 模板解释
查看>>
http://www.bootcss.com/
查看>>
20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结
查看>>
将多张图片和文字合成一张图片
查看>>
自己动手写ORM(01):解析表达式树生成Sql碎片
查看>>
如何使用USBWebserver在本机快速建立网站测试环境
查看>>
百度Ueditor编辑器的Html模式自动替换样式的解决方法
查看>>
变量提升
查看>>
线性表可用顺序表或链表存储的优缺点
查看>>
在现有的mysql主从基础上,搭建mycat实现数据的读写分离
查看>>
opencv安装配置
查看>>
[Flex] flex手机项目如何限制横竖屏?只允许横屏?
查看>>
tensorflow的graph和session
查看>>
6-1 并行程序模拟 uva210
查看>>
JavaScript动画打开半透明提示层
查看>>
Mybatis生成resulteMap时的注意事项
查看>>
jquery-jqzoom 插件 用例
查看>>