|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,js|翻页|页面在以列表的情势显现数据时必要对页面举行翻页把持,基础在项目标各模块中城市用到。为了最年夜限制地完成翻页的可重用和易移植,使用组件的情势对翻页逻辑举行封装。
翻页把持器的剖析
形貌:
翻页把持器用来完成对WEB页面的翻页内容的显现和翻页的各类操纵的把持。经由过程JSP挪用,将分页内容显现到WEB页面。它撑持多种体例微风格的显现。
翻页把持器的计划
上面分离创立翻页把持器的一个PageConfig类、一个Page类、一个PageView类。
?PageConfig.java
类
类PageConfig
声明publicclass
形貌这个类用来保留页面属性的值,如每页显现几行等。
超类
实行
属性形貌
属性属性形貌界说
[PageConfig]
|--PAGE_SIZE页巨细publicstaticfinalint
|--PAGE_SIZE_SMALL小型页面的巨细publicstaticfinalint
|--PAGE_SIZE_NORMAL一般页面的巨细publicstaticfinalint
|--PAGE_SIZE_BIG年夜型页面的巨细publicstaticfinalint
|--PAGE_SIZE_BIGGER较年夜页面的巨细publicstaticfinalint
|--PAGE_SIZE_BIGGEST最年夜页面的巨细publicstaticfinalint
?Page.java
类
类Page
声明publicclass
形貌这个类用来保留页面属性的值,如每页显现几行等。
超类
实行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(Listl,ints,booleanhasNext)创立页面l了局集s入手下手纪录号,从0入手下手hasNext是不是有下一页的开关
|--Page(Listl,ints,booleanhasNext,inttotal)创立页面l了局集s入手下手纪录号,从0入手下手hasNext是不是有下一页的开关total一共有几行纪录
|--Page(Listl,ints,intsize,booleanhasNext,inttotal)创立页面l了局集s入手下手纪录号,从0入手下手size每页有几行hasNext是不是有下一页的开关total一共有几行纪录
|--Page(Listl,intnum,intsize,inttotal)创立页面l了局集num以后是第几页size每页有几行total一共有几行纪录
|--Page(Listl)创立页面,不举行分页l了局集
办法
办法办法形貌前往值
[Page]
|--autoCalculate()主动盘算,依据以后页、页巨细、总行数盘算出别的属性的值privatevoid
|--getList()取得了局集publicList
|--getViewStart()取得显现在页面的入手下手纪录号,从1入手下手publicint
|--getViewEnd()取得显现在页面的停止纪录号publicint
|--hasNextPage()是不是有下一页publicboolean
|--hasPreviousPage()是不是有上一页publicboolean
|--getPreviousPageNumber()取得上一页的页码publicint
|--getNextPageNumber()取得下一页的页码publicint
|--getTotal()取得了局会合纪录总行数publicint
|--getTotalPage()取得总页数publicint
|--getCurrentPageNumber()取得以后页码publicint
|--getPageSize()取得每页几行纪录publicint
|--getStartOfNextPage()取得下一页在了局会合入手下手的纪录号,从0入手下手publicint
|--getStartOfPreviousPage()取得上一页在了局会合入手下手的纪录号,从0入手下手publicint
|--getSize()取得以后页包含的纪录行数publicint
|--isEmpty()判别以后页面是不是是空缺页面,假如以后页面是空缺页面,前往true,不然,前往falsepublicboolean
PageView.java
类
类PageView
声明publicclass
形貌经由过程JSP挪用,将分页内容显现到WEB页面。不撑持图片、按钮等,只撑持笔墨。用法:在JSP页面按以下情势界说:<%PageViewview=newPageView(request,out,page);%>按缺省情势显现<%view.setVisible(true);%>按指定情势显现<%view.setVisible(true,0,1);%>
超类
实行
属性形貌
属性称号属性形貌数据范例
[PageView]
|--currentUrl以后页面的URL以后页面的URL字符串
|--style作风作风字符串
|--useSquareBrackets是不是加[]的开关在"上一页"双方是不是加上"["和"]"布尔值
|--pageWEB页面WEB页面Page对象
机关器
机关器机关器形貌参数
[PageView]
|--PageView(HttpServletRequestrequest,JspWriterout,Pagepage))创立一个分页内容request客户端哀求out页面输入对象pageWEB页面
办法
办法办法形貌前往值
[PageView]
|--setVisible(booleanvisible)按缺省情势显现分页内容,假如visible为true,则显现分页内容,不然,不显现分页内容publicvoid
|--setVisible(booleanvisible,intstyle,intorder)按指定情势显现分页内容,假如visible为true,则显现分页内容,不然,不显现分页内容publicvoid
|--setVisible(booleanvisible,booleanuseSquareBrackets,intstyle,intorder)按指定情势显现分页内容,假如visible为true,则显现分页内容,不然,不显现分页内容publicvoid
|--viewPage(booleanuseSquareBrackets,intstyle,intorder)按指定情势显现分页内容,order为0,暗示完全情势,按以下按次显现:合计:18分页:2以后页:1每页:10首页前页后页尾页转到□□□□order为1,暗示简便情势,按以下按次显现:前页后页尾页1/2order为2,暗示完全情势2,按以下按次显现:合计:18每页:10转到□□□□首页前页后页尾页1/2publicvoid
翻页把持器的编码
只需按翻页把持器的计划举行编码,这里不必再讲了。
翻页把持器组件的源代码
a)PageConfig.java
b)Page.java
c)PageView.java
源代码:当即下载
翻页把持器的挪用
翻页把持器的挪用其实太复杂了,挪用办法:
?导进翻页把持器包
<%@pageimport="java.util.List,com.cwap.oa.controller.web.page.Page,
com.cwap.oa.controller.web.page.PageView"%>
?创立一个Page对象,Page.EMPTY_PAGE为空缺页面
Pagepage=Page.EMPTY_PAGE;
?创立一个PageView对象
<%PageViewview=newPageView(request,out,page);%>
?显现分页的内容:
按缺省情势显现
<%view.setVisible(true);%>
按指定情势显现
<%view.setVisible(true,0,1);%>
?挪用翻页把持器的例子
上面是在论坛板块中的一个JSP中挪用的示例,用来显现一切的论坛板块列表,上面只列出部分代码:
<%@pagelanguage="java"%>
<%@pagecontentType="text/html;charset=GBK"%>
<%@pageimport="java.util.List,
com.cwap.oa.controller.web.page.PageView,com.cwap.oa.controller.web.page.Page"%>
<jsp:useBeanid="forumBoardHelper"scope="page"
class="com.club8090.forum.forumboard.client.ForumBoardClientHelper"/>
<%
Stringtmp=request.getParameter("pageNumber");
intpageNumber=0;
if(tmp==null||tmp.equals("")){
pageNumber=1;
}else{
try{
pageNumber=Integer.parseInt(tmp);
}catch(java.lang.NullPointerExceptionnpe){
pageNumber=1;
}catch(java.lang.NumberFormatExceptionnfe){
pageNumber=1;
}
}
Pagepage=Page.EMPTY_PAGE;//page初始化为Page.EMPTY_PAGE空缺页面
page=forumBoardHelper.getAllForumBoards(pageNumber);
%>
…
<table>
<tr>
<td>NO.</td>
<td>称号</td>
<td>形貌择要</td>
</tr>
<%
Listitems=page.getList();
if(items.isEmpty()){
out.println("<trcolspan=3>没有纪录存在</tr>");
}else{
intno;//页面中显现的行数
for(inti=0;i<items.size();i++){
ForumBoardModelforumBoardModel=(ForumBoardModel)items.get(i);
no=page.getViewStart()+i;
%>
//显现纪录列表
<tr>
<td><%=no%></td>
<td><%=forumBoardModel.getName()%></td>
<td><%=forumBoardModel.getSummary()%></td>
</tr>
<%
}
PageViewview=newPageView(request,out,page);
view.setVisible(true,0,1);
}
%>
</table>
…
从一个编程语言的普及程度来将,一个好的IDE是至关中要的,而现在的java的IDE虽然已经很好了,但是和.net比起来还是稍微差一些的,这是个客观事实。java要想普及的更好。DE是必须加以改进的。 |
|