guokehua(@yahoo.com.cn oy Java 1010 13 Struts中的分页处理 2008-3-10 郭克华EE框架实战教学视频
2008-3-10 1 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 13Struts 13Struts中的分页处理
guokehua(@yahoo.com.cn Struts中的分页处理:普通分页 场景:查询所有学生的资料,显示在页 面上,要求:5个一页,利用 Struts框架 1010 要求:页面底部有如下链接: 首页上一页下一页尾页 当在最后一页时,不显示下一页 当在第一页时,不显示上一页 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 2 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 Struts中的分页处理:普通分页 中的分页处理:普通分页 • 场景:查询所有学生的资料,显示在页 场景:查询所有学生的资料,显示在页 面上,要求:5个一页,利用Struts框架 • 要求:页面底部有如下链接: 要求:页面底部有如下链接: – – 首页 上一页 下一页 尾页 – – 当在最后一页时,不显示下一页 当在最后一页时,不显示下一页 – – 当在第一页时,不显示上一页 当在第一页时,不显示上一页
guokehua(@yahoo.com.cn |分页策略 有一些数据库,如 Mysql, Oracle等有自己 的分页方法,比如Myql可以使用 limit-子 1010 句, Oracle可以使用 RoWNUM来限制结 果集的大小和起始位置, 两种策略:将内容全部查询出来之后分 页(查完再分);根据该页需要显示的内容 1去查询(用多少查多少) 权衡:査询难度,数据量 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 3 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 分页策略 • 有一些数据库,如 有一些数据库,如Mysql, Oracle , Oracle等有自己 的分页方法,比如 的分页方法,比如Mysql可以使用limit子 句,Oracle可以使用ROWNUM来限制结 果集的大小和起始位置。 果集的大小和起始位置。 • 两种策略:将内容全部查询出来之后分 两种策略:将内容全部查询出来之后分 页(查完再分);根据该页需要显示的内容 ;根据该页需要显示的内容 去查询(用多少查多少) • 权衡:查询难度,数据量 权衡:查询难度,数据量
guokehua(@yahoo.com.cn 我们的要求 分页方法必须可重用性强 ·分页方法必须可移植性好 d·你必须了解下面的公式: 如果有32条记录,每页显示5条,则: ·页数 记录条数%每页条数==0记录条数每页条数 否则记录条数每页条数+1 第N页显示第几条记录(记录从0开始算)? (N-1)*每页条数=<序号<N*每页条数 ·本质:传入一个比较大的集合,返回需要显示的页上 的纪录 008-3-10 郭克华J2E框架实战教学视频
2008-3-10 4 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 我们的要求 • 分页方法必须可重用性强 分页方法必须可重用性强 • 分页方法必须可移植性好 分页方法必须可移植性好 • 你必须了解下面的公式: 你必须了解下面的公式: • 如果有32条记录,每页显示 条记录,每页显示5条,则: • 页数= – – 记录条数%每页条数==0 记录条数/每页条数 – – 否则 记录条数/每页条数+1 • 第N页显示第几条记录 页显示第几条记录(记录从0开始算)? – – (N-1)*每页条数=<序号< N*每页条数 • 本质:传入一个比较大的集合,返回需要显示的页上 本质:传入一个比较大的集合,返回需要显示的页上 的纪录
guokehua(@yahoo.com.cn 原理 1010 内容 首页上一页下一页尾页 切链接都交给 Action去做: Action决定怎样显示这些数据 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 5 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 原理 内容 首页 上一页 下一页 尾页 一切链接都交给Action去做; Action决定怎样显示这些数据
guokehua(@yahoo.com.cn 过程 ·编写一个类,专门负责将某一页的内容显示出来,并能存 储与分页相关的一些信息 1010 这个类为了显示数据的一部分,所以必须传入一个集合属性list, 注意返回时可能是ist的一部分了 这个类需要根据当前页的信息来筛选内容,所以要有属 性: currentPagelndex 这个类需要知道是不是最后一页(第一页,因为当是最后一页 时,就不要显示下一页 这个类需要知道一页显示多少条记录 这个类还需要知道当前页的上一页(下一页)是第几页 要点:对传入当前页数和得到筛选结果的函数进行编 程 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 6 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 过程 • 编写一个类,专门负责将某一页的内容显示出来 专门负责将某一页的内容显示出来,并能存 储与分页相关的一些信息 储与分页相关的一些信息 – – 这个类为了显示数据的一部分,所以必须传入一个集合属性:list, 注意,返回时可能是list的一部分了 – – 这个类需要根据当前页的信息来筛选内容,所以要有属 性:currentPageIndex currentPageIndex – – 这个类需要知道是不是最后一页(第一页),因为当是最后一页 时,就不要显示下一页 – – 这个类需要知道一页显示多少条记录 – – 这个类还需要知道当前页的上一页(下一页)是第几页 • 要点:对传入当前页数和得到筛选结果的函数进行编 要点:对传入当前页数和得到筛选结果的函数进行编 程
guokehua(@yahoo.com.cn 扩充 页面上显示当前第X页 页面上要显示共Ⅹ页,共X条记录 ·页面上要显示12345链接,用户能够点击 相应链接到达相应页 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 7 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 扩充 • 页面上显示:当前第X页 • 页面上要显示共 页面上要显示共X页,共X条记录 • 页面上要显示1 2 3 4 5 1 2 3 4 5…链接,用户能够点击 链接,用户能够点击 相应链接到达相应页 相应链接到达相应页
guokehua(@yahoo.com.cn 了一个间题 可否重用? 1010 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 8 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 一个问题 可否重用?