仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 977|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA教程之JSP及JSP页面的翻页

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:31:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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是必须加以改进的。
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-21 09:31:31 来自手机 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
谁可相欹 该用户已被删除
板凳
发表于 2015-1-24 15:29:33 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
愤怒的大鸟 该用户已被删除
地板
发表于 2015-1-24 17:12:05 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
不帅 该用户已被删除
5#
发表于 2015-1-25 12:19:36 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
小妖女 该用户已被删除
6#
发表于 2015-1-25 21:07:02 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
冷月葬花魂 该用户已被删除
7#
发表于 2015-1-27 07:10:25 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
小女巫 该用户已被删除
8#
发表于 2015-1-31 12:29:34 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
精灵巫婆 该用户已被删除
9#
发表于 2015-2-1 17:15:47 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
海妖 该用户已被删除
10#
发表于 2015-2-7 11:19:56 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
小魔女 该用户已被删除
11#
发表于 2015-2-21 19:30:02 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
老尸 该用户已被删除
12#
发表于 2015-3-4 05:07:51 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
分手快乐 该用户已被删除
13#
发表于 2015-3-6 02:16:04 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
变相怪杰 该用户已被删除
14#
发表于 2015-3-7 02:14:18 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
15#
发表于 2015-3-11 15:20:25 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
因胸联盟 该用户已被删除
16#
发表于 2015-3-18 21:48:35 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
莫相离 该用户已被删除
17#
发表于 2015-3-22 20:38:52 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
金色的骷髅 该用户已被删除
18#
发表于 2015-3-27 06:11:08 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
山那边是海 该用户已被删除
19#
发表于 2015-3-27 11:56:56 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
爱飞 该用户已被删除
20#
发表于 2015-3-31 05:40:04 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 16:56

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表