欢迎光临
我们一直在努力

JSP及JSP页面的翻页-JSP教程,Jsp/Servlet

建站超值云服务器,限时71元/月

在以列表的形式显示数据时需要对页面进行翻页控制,基本在项目的各模块中都会用到。为了最大限度地实现翻页的可重用和易移植,利用组件的形式对翻页逻辑进行封装。

翻页控制器的分析

描述:

翻页控制器用来实现对web页面的翻页内容的显示和翻页的各种操作的控制。通过jsp调用,将分页内容显示到web页面。它支持多种方式和风格的显示。

翻页控制器的设计

下面分别创建翻页控制器的一个pageconfig类、一个page类、一个pageview类。

? pageconfig.java

类 pageconfig

声明 public class

描述 这个类用来保存页面属性的值,如每页显示几行等。

超类

执行

属性描述

属性 属性描述 定义

[pageconfig]

|–page_size 页大小 public static final int

|–page_size_small 小型页面的大小 public static final int

|–page_size_normal 正常页面的大小 public static final int

|–page_size_big 大型页面的大小 public static final int

|–page_size_bigger 较大页面的大小 public static final int

|–page_size_biggest 最大页面的大小 public static final int

? page.java

类 page

声明 public class

描述 这个类用来保存页面属性的值,如每页显示几行等。

超类

执行 java.lang.serializable

属性描述

属性 名称 属性描述 数据类型

|–empty_page 空白页面 描述一个空白页面,即不含内容的页面。 page对象

|–objects 结果集列表 结果集列表 java.util.list或java.util.vector

|–start 开始记录号 开始记录号,从0开始 正整数和0

|–end 结束记录号 结束记录号 正整数和0

|–viewstart 显示在页面开始记录号 显示在页面开始记录号,从1开始 正整数

|–viewend 显示在页面结束记录号 显示在页面结束记录号 正整数

|–hasprevious 是否有上一页的开关 是否有上一页的开关 布尔值

|–previouspagenumber 上一页的页码 上一页的页码 正整数和0

|–hasnext 是否有下一页的开关 是否有下一页的开关 布尔值

|–nextpagenumber 下一页的页码 下一页的页码 正整数和0

|–total 总行数 一共有多少行记录 正整数和0

|–totalpage 总页数 一共有多少页

|–currentpagenumber 当前页 描述当前是第几页 正整数和0

|–pagesize 页大小 描述每页有多少行 正整数和0

构造器

构造器 构造器描述 参数

[page]

|–page(list l, int s, boolean hasnext) 创建页面 l 结果集s 开始记录号,从0开始hasnext 是否有下一页的开关

|–page(list l, int s, boolean hasnext, int total) 创建页面 l 结果集s 开始记录号,从0开始hasnext 是否有下一页的开关total 一共有多少行记录

|–page(list l, int s, int size, boolean hasnext, int total) 创建页面 l 结果集s 开始记录号,从0开始size 每页有多少行hasnext 是否有下一页的开关total 一共有多少行记录

|– page(list l, int num, int size, int total) 创建页面 l 结果集num 当前是第几页size 每页有多少行total 一共有多少行记录

|– page(list l) 创建页面,不进行分页 l 结果集

方法

方法 方法描述 返回值

[page]

|–autocalculate () 自动计算,根据当前页、页大小、总行数计算出其它属性的值 private void

|–getlist() 获得结果集 public list

|–getviewstart() 获得显示在页面的开始记录号,从1开始 public int

|–getviewend() 获得显示在页面的结束记录号 public int

|–hasnextpage() 是否有下一页 public boolean

|–haspreviouspage () 是否有上一页 public boolean

|–getpreviouspagenumber () 获得上一页的页码 public int

|–getnextpagenumber () 获得下一页的页码 public int

|–gettotal () 获得结果集中记录总行数 public int

|–gettotalpage () 获得总页数 public int

|–getcurrentpagenumber () 获得当前页码 public int

|–getpagesize () 获得每页多少行记录 public int

|–getstartofnextpage () 获得下一页在结果集中开始的记录号,从0开始 public int

|–getstartofpreviouspage () 获得上一页在结果集中开始的记录号,从0开始 public int

|–getsize() 获得当前页包括的记录行数 public int

|–isempty() 判断当前页面是否是空白页面,如果当前页面是空白页面,返回true,否则,返回false public boolean

pageview.java

类 pageview

声明 public class

描述 通过jsp调用,将分页内容显示到web页面。不支持图片、按钮等,只支持文字。用法:在jsp页面按如下形式定义:<% pageview view = new pageview(request,out,page); %>按缺省形式显示<% view.setvisible(true); %>按指定形式显示<% view.setvisible(true,0,1); %>

超类

执行

属性描述

属性 名称 属性描述 数据类型

[pageview]

|–currenturl 当前页面的url 当前页面的url 字符串

|–style 风格 风格 字符串

|–usesquarebrackets 是否加[]的开关 在"上一页"两边是否加上"["和"]" 布尔值

|–page web页面 web页面 page对象

构造器

构造器 构造器描述 参数

[pageview]

|– pageview (httpservletrequest request,jspwriter out,page page)) 创建一个分页内容 request 客户端请求out 页面输出对象page web页面

方法

方法 方法描述 返回值

[pageview]

|–setvisible(boolean visible) 按缺省形式显示分页内容,如果visible为true,则显示分页内容,否则,不显示分页内容 public void

|–setvisible(boolean visible,int style,int order) 按指定形式显示分页内容,如果visible为true,则显示分页内容,否则,不显示分页内容 public void

|–setvisible(boolean visible,boolean usesquarebrackets,int style,int order) 按指定形式显示分页内容,如果visible为true,则显示分页内容,否则,不显示分页内容 public void

|–viewpage(boolean usesquarebrackets,int style,int order) 按指定形式显示分页内容,order为0,表示完整形式,按如下顺序显示:共计:18 分页:2 当前页:1 每页:10 首页 前页 后页 尾页 转到□□□□order为1,表示简洁形式,按如下顺序显示:前页 后页 尾页 1/2order为2,表示完整形式2,按如下顺序显示:共计:18 每页:10 转到□□□□ 首页 前页 后页 尾页 1/2 public void

翻页控制器的编码

只需按翻页控制器的设计进行编码,这里不用再讲了。

翻页控制器组件的源代码

a)pageconfig.java

b)page.java

c)pageview.java

源代码:立即下载

翻页控制器的调用

翻页控制器的调用实在太简单了,调用方法:

? 导入翻页控制器包

<%@ page import="java.util.list,com.cwap.oa.controller.web.page.page,

com.cwap.oa.controller.web.page.pageview"%>

? 创建一个page对象,page.empty_page为空白页面

page page = page.empty_page;

? 创建一个pageview对象

<% pageview view = new pageview(request,out,page); %>

? 显示分页的内容:

按缺省形式显示

<% view.setvisible(true); %>

按指定形式显示

<% view.setvisible(true,0,1); %>

? 调用翻页控制器的例子

下面是在论坛板块中的一个jsp中调用的示例,用来显示所有的论坛板块列表,下面只列出部分代码:

<%@ page language="java"%>

<%@ page contenttype="text/html; charset=gbk"%>

<%@ page import="java.util.list,

com.cwap.oa.controller.web.page.pageview,com.cwap.oa.controller.web.page.page"%>

<jsp:usebean id="forumboardhelper" scope="page"

class="com.club8090.forum.forumboard.client.forumboardclienthelper"/>

<%

string tmp=request.getparameter("pagenumber");

int pagenumber = 0;

if(tmp==null || tmp.equals("")){

pagenumber = 1;

}else{

try {

pagenumber = integer.parseint(tmp);

}catch(java.lang.nullpointerexception npe){

pagenumber = 1;

}catch(java.lang.numberformatexception nfe){

pagenumber = 1;

}

}

page page = page.empty_page;//page初始化为page.empty_page空白页面

page = forumboardhelper.getallforumboards(pagenumber);

%>



<table>

<tr>

<td>no.</td>

<td>名称</td>

<td>描述摘要</td>

</tr>

<%

list items = page.getlist();

if( items.isempty() ) {

out.println("<tr colspan=3>没有记录存在</tr>");

}else{

int no;//页面中显示的行数

for (int i = 0; i < items.size(); i++) {

forumboardmodel forumboardmodel = (forumboardmodel)items.get(i);

no = page.getviewstart() + i;

%>

//显示记录列表

<tr>

<td><%= no %></td>

<td><%= forumboardmodel.getname() %></td>

<td><%= forumboardmodel.getsummary() %></td>

</tr>

<%

}

pageview view = new pageview(request,out,page);

view.setvisible(true,0,1);

}

%>

</table>

 

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » JSP及JSP页面的翻页-JSP教程,Jsp/Servlet
分享到: 更多 (0)