第二个灵魂 发表于 2015-1-18 11:41:22

JAVA编程:用JAVA完成一个分页类

最后就是我对java的几点希望:首先是IDE工具,有人说java已经很好了,有jbuilder,eclipse,netBeans等等,但是我认为如果java想超越.net,那么他首先要解决的就是IDE工具的整合。分页这里我以从一个用户表中查询用户信息为例演示其用法:

1.将PageResultSet.java文件编译成class文件,并放进你的Web
使用程序的WEB-INF/classes/com/youngor/util目次下,能够对包名做响应修正。

2.在你的Action类中:
先从营业处置逻辑类中掏出数据(ArrayList或Vector格局)
UserBOuserBO=newUserBO();
Collectiondata=userBO.findUsers();//示例办法
再失掉以后页curPage和每页纪录数pageSize
intcurPage=Integer.parseInt(request.getParameter(“cur_page“));
intpageSize=15;
然后天生PageResultSet对象
PageResultSetdataList=newPageResultSet(data,curPage,pageSize);
request.setAttribute("usersList",usersList);

3.在你的JSP页面中:
<%
PageResultSetpageResultSet=(PageResultSet)request.getAttribute("usersList");
ArrayListusersList=(ArrayList)pageResultSet.getData();
for(inti=0;i<usersList.size();i++)
{
UserEOuserEO=(UserEO)usersList.get(i);%>
<tr>
<td><ahref="view_user.do?id=<%=userEO.getId()%>"><%=userEO.getUsername()%></a></td>
<td><%=userEO.getName()%></td>
<td><%=userEO.getPhoneNumber()%></td>
<td><%=userEO.getEmailBox()%></td>
<td><%=userEO.getAddress()%></td>
<td><%=userEO.getPostcode()%></td>
</tr>
<%}%>
</table></td>
</tr>
</table>

<!--显现分页工具栏-->

<%=pageResultSet.getToolBar("list_users.do")%>


注重:
1、假如你以为分页工具栏不克不及满意你的请求,能够用PageResultSet类中的大众办法
first()、previous()、next()、last()定制本人的工具栏,而且,你还能够在PageResultSet中界说多个款式的工具栏;
2、getToolBar(Stringurl)办法承受带查询字符串的参数,好比“list_users.do?class_id=1“。



//PageResultSet.java
packagecom.youngor.util;

importjava.util.*;

/**
*<p>Title:PageResultSet</p>
*
*<p>Description:分页类</p>
*
*<p>Copyright:Copyright(c)2004</p>
*
*<p>Company:youngor-studio(http://www.54youngor.com)</p>
*@author:伍维波
*@version1.0
*/
publicclassPageResultSet{
/**
*分页数据
*/
privateCollectiondata=null;
/**
*以后页
*/
privateintcurPage;
/**
*每页显现的纪录数
*/
privateintpageSize;
/**
*纪录行数
*/
privateintrowsCount;
/**
*页数
*/
privateintpageCount;

publicPageResultSet(Collectiondata){
this.data=data;
this.curPage=1;
this.pageSize=10;
this.rowsCount=data.size();
this.pageCount=(int)Math.ceil((double)rowsCount/pageSize);
}

publicPageResultSet(Collectiondata,intcurPage){
this.data=data;
this.curPage=curPage;
this.pageSize=10;
this.rowsCount=data.size();
this.pageCount=(int)Math.ceil((double)rowsCount/pageSize);
}

publicPageResultSet(Collectiondata,intcurPage,intpageSize){
this.data=data;
this.curPage=curPage;
this.pageSize=pageSize;
this.rowsCount=data.size();
this.pageCount=(int)Math.ceil((double)rowsCount/pageSize);
}

/**
*getCurPage:前往以后的页数
*
*@returnint
*/
publicintgetCurPage(){
returncurPage;
}

/**
*getPageSize:前往分页巨细
*
*@returnint
*/
publicintgetPageSize(){
returnpageSize;
}

/**
*getRowsCount:前往总纪录行数
*
*@returnint
*/
publicintgetRowsCount(){
returnrowsCount;
}

/**
*getPageCount:前往总页数
*
*@returnint
*/
publicintgetPageCount(){
returnpageCount;
}
/**
*第一页
*@returnint
*/
publicintfirst(){
return1;
}
/**
*最初一页
*@returnint
*/
publicintlast(){
returnpageCount;
}
/**
*上一页
*@returnint
*/
publicintprevious(){
return(curPage-1<1)?1:curPage-1;
}
/**
*下一页
*@returnint
*/
publicintnext(){
return(curPage+1>pageCount)?pageCount:curPage+1;
}

/**
*第一页
*@returnboolean
*/
publicbooleanisFirst(){
return(curPage==1)?true:false;
}

/**
*第一页
*@returnboolean
*/
publicbooleanisLast(){
return(curPage==pageCount)?true:false;
}
/**
*猎取以后页数据
*@returnCollection
*/
publicCollectiongetData(){
CollectioncurData=null;
if(data!=null){
intstart=(curPage-1)*pageSize;
intend=0;
if(start+pageSize>rowsCount)
end=rowsCount;
else
end=start+pageSize;
ArrayListarrayCurData=newArrayList();
ArrayListarrayData=null;
VectorvectorCurData=newVector();
VectorvectorData=null;
booleanisArray=true;
if(datainstanceofArrayList){
arrayData=(ArrayList)data;
isArray=true;
}elseif(datainstanceofVector){
vectorData=(Vector)data;
isArray=false;
}
for(inti=start;i<end;i++){
if(isArray){
arrayCurData.add(arrayData.get(i));
}else{
vectorData.add(vectorData.elementAt(i));
}
}
if(isArray){
curData=(Collection)arrayCurData;
}else{
curData=(Collection)vectorCurData;
}
}
returncurData;
}
/**
*猎取工具条
*@returnString
*/
publicStringgetToolBar(StringfileName){
Stringtemp="";
if(fileName.indexOf("?")==-1)
{
temp="?";
}
else
{
temp="&";
}
Stringstr="<formmethod=postname=frmPageaction="+fileName+">";
str+="<palign=center>";
if(isFirst())
str+="首页上一页";
else
{
str+="<ahref="+fileName+temp+"cur_page=1>首页</a>";
str+="<ahref="+fileName+temp+"cur_page="+(curPage-1)+">上一页</a>";
}
if(isLast())
str+="下一页尾页";
else
{
str+="<ahref="+fileName+temp+"cur_page="+(curPage+1)+">下一页</a>";
str+="<ahref="+fileName+temp+"cur_page="+pageCount+">尾页</a>";
}
str+="共<b>"+rowsCount+"</b>笔记录";
str+="转到<selectname=pageonChange="location="+fileName+temp+"cur_page=+this.options.value">";
for(inti=1;i<=pageCount;i++)
{
if(i==curPage)
str+="<optionvalue="+i+"selected>第"+i+"页</option>";
else
str+="<optionvalue="+i+">第"+i+"页</option>";
}
str+="</select></p></form>";
returnstr;
}
}



不得不提一下的是:.net是看到java红,而开发出来的工具。

老尸 发表于 2015-1-24 15:18:35

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

山那边是海 发表于 2015-2-1 18:08:46

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

小妖女 发表于 2015-2-4 13:19:11

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

柔情似水 发表于 2015-2-6 16:24:32

所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。

第二个灵魂 发表于 2015-2-7 02:53:13

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

仓酷云 发表于 2015-2-7 14:38:05

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

活着的死人 发表于 2015-2-9 02:14:46

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

飘灵儿 发表于 2015-2-9 22:45:33

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

只想知道 发表于 2015-2-10 21:29:01

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

海妖 发表于 2015-2-18 08:59:48

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

兰色精灵 发表于 2015-2-28 02:24:14

是一种语言,用以产生「小应用程序(Applet(s))

金色的骷髅 发表于 2015-3-7 02:18:05

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

爱飞 发表于 2015-3-8 22:34:05

Java 编程语言的风格十分接近C、C++语言。

分手快乐 发表于 2015-3-13 08:27:42

一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。

透明 发表于 2015-3-20 17:25:29

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

若天明 发表于 2015-3-22 21:02:52

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

谁可相欹 发表于 2015-4-3 04:11:15

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

飘飘悠悠 发表于 2015-4-7 11:59:07

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

admin 发表于 2015-4-7 19:06:59

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
页: [1]
查看完整版本: JAVA编程:用JAVA完成一个分页类