MyHibernate分页标签使用文档.docx

上传人:b****9 文档编号:25955362 上传时间:2023-06-16 格式:DOCX 页数:17 大小:19.39KB
下载 相关 举报
MyHibernate分页标签使用文档.docx_第1页
第1页 / 共17页
MyHibernate分页标签使用文档.docx_第2页
第2页 / 共17页
MyHibernate分页标签使用文档.docx_第3页
第3页 / 共17页
MyHibernate分页标签使用文档.docx_第4页
第4页 / 共17页
MyHibernate分页标签使用文档.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

MyHibernate分页标签使用文档.docx

《MyHibernate分页标签使用文档.docx》由会员分享,可在线阅读,更多相关《MyHibernate分页标签使用文档.docx(17页珍藏版)》请在冰豆网上搜索。

MyHibernate分页标签使用文档.docx

MyHibernate分页标签使用文档

MyHibernate3分页标签

(1)—pageController2分页核心控制器

packagezjnu.soft.util;

//策略:

查多少分多少

publicclasspageController2{

privateintcurrentPageIndex;//当前页码

privateintcountPerpage;//每页多少条记录

privateintpageCount;//页数

privateintrecordCount;//记录总条数

privateintprePageIndex;//上一页序号

privateintnextPageIndex;//下一页序号

privatebooleanfirstPage;//是否为第一页

privatebooleanlastPage;//是否为最后一页

privateintperP;//每页显示页码数

privateintcurrentG;//当前组号

privateintallG;//共有组数

publicvoidsetRecordCount(intrecordCount){

this.recordCount=recordCount;//一共有多少个记录

if(recordCount%countPerpage==0){

pageCount=recordCount/countPerpage;

}else{

pageCount=recordCount/countPerpage+1;

}

this.allG=(recordCount%(perP*countPerpage)==0)?

(recordCount/(perP*countPerpage))

:

(recordCount/(perP*countPerpage)+1);//获取一共有多少组

}

@SuppressWarnings("unchecked")

publicvoidsetCurrentPageIndex(intcurrentPageIndex){//设置当前页码

this.currentPageIndex=currentPageIndex;

if(this.currentPageIndex>this.pageCount){

currentPageIndex=this.pageCount;

this.currentPageIndex=currentPageIndex;

}

prePageIndex=currentPageIndex-1;

nextPageIndex=currentPageIndex+1;

if(currentPageIndex==1){

firstPage=true;

}else{

firstPage=false;

}

if(currentPageIndex==pageCount){

lastPage=true;

}else{

lastPage=false;

}

this.currentG=(currentPageIndex%perP==0)?

(currentPageIndex/perP)

:

(currentPageIndex/perP+1);//当前是第几组

}

//省略剩余的get(),set()函数

}

MyHibernate3分页标签

(2)—pageController2分页管理器

packagezjnu.soft.util;

importjava.util.List;

importjavax.servlet.http.HttpServletRequest;

publicclasspageManage2{

privatepageController2pc;

publicpageController2getPc(){

returnpc;

}

publicvoidsetPc(pageController2pc){

this.pc=pc;

}

@SuppressWarnings({"unchecked"})

publicvoidsetPageIndex(StringPageIndex,IntegerrecordCount,Listlist,

HttpServletRequestrequest,IntegercountPerpage,IntegerperP){

if(list!

=null&&list.size()!

=0){

Stringstr=PageIndex;

if(str==null)//初始化

{

str="1";

}

pc=newpageController2();

pc.setCountPerpage(countPerpage);

pc.setPerP(perP);

pc.setRecordCount(recordCount);

intcurrentPageIndex=Integer.parseInt(str);//得到当前页码

pc.setCurrentPageIndex(currentPageIndex);//设置当前页码

//将分页控制器至于request中便于标签获取分页信息

request.setAttribute("pc",pc);

}

}

}

MyHibernate3分页标签(3)—displayTag2分页标签生成类

WEB-INF\myDisplayTag.tld

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEtaglibPUBLIC"-//SunMicrosystems,Inc.//DTDJSPTagLibrary1.1//EN""

1.0

1.1

myDisplayTag

displayTag2

zjnu.soft.util.displayTag2

empty

gowhich

true

true

packagezjnu.soft.util;

importjava.io.IOException;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.jsp.JspException;

importjavax.servlet.jsp.JspWriter;

importjavax.servlet.jsp.tagext.TagSupport;

importzjnu.soft.util.pageController2;

publicclassdisplayTag2extendsTagSupport{

privateStringgowhich;//去哪去list

privatepageController2pc;//pc控制器

//省略get()set()

@Override

publicintdoStartTag()throwsJspException{

try{

getmenu();

}catch(IOExceptione){

e.printStackTrace();

}

returnSKIP_BODY;

}

publicvoidgetmenu()throwsIOException{

booleanflag=false;//没有?

if(gowhich.indexOf("?

")>0){

flag=true;//有?

boardId=1后加&

}

HttpServletRequestrequest=(HttpServletRequest)pageContext

.getRequest();

this.pc=(pageController2)request.getAttribute("pc");

if(pc!

=null)//如果pc不为空时候才能显示分页导航条

{

StringdisplayTag="";

IntegercurrentPageIndex=pc.getCurrentPageIndex();//当前页面

IntegerpageCount=pc.getPageCount();

booleanisfirst=pc.isFirstPage();

booleanislast=pc.isLastPage();

Integernext=pc.getNextPageIndex();

Integerpre=pc.getPrePageIndex();

Integerlast=pc.getRecordCount();

IntegercurrentG=pc.getCurrentG();

IntegerperP=pc.getPerP();

IntegerlastG=pc.getAllG();

intstart=(currentG-1)*perP+1;//获取起始页码

//开始制作标签

if(currentG>1){

if(flag==false){

displayTag+="[

PageIndex="

+(start-perP)+"'>上"+perP+"页";

}else{

displayTag+="[

+(start-perP)+"'>上"+perP+"页";

}

}else{

displayTag+="[上"+perP+"页";

}

if(!

isfirst){

if(flag==false){

displayTag+="

+"?

PageIndex=1'>首页";

}else{

displayTag+="

+"&PageIndex=1'>首页";

}

}else{

displayTag+="首页";

}

if(!

isfirst){

if(flag==false){

displayTag+="

PageIndex="

+pre+"'>上一页|";

}else{

displayTag+="

+pre+"'>上一页|";

}

}else{

displayTag+="上一页|";

}

//intstart=(currentG-1)*perP+1;//获取起始页码

for(inti=0;((i

//通过循环依次输出当前组中的页码

if((start+i)==currentPageIndex)

displayTag+=(start+i)+"";

else{

if(flag==false){

displayTag+="

+"?

PageIndex="+(start+i)+"'>"

+(start+i)+"";

}else{

displayTag+="

+"&PageIndex="+(start+i)+"'>"

+(start+i)+"";

}

}

}

if(!

islast){

if(flag==false){

displayTag+="|

PageIndex="

+next+"'>下一页";

}else{

displayTag+="|

+next+"'>下一页";

}

}else{

displayTag+="|下一页";

}

if(!

islast){

if(flag==false){

displayTag+="

PageIndex="

+pageCount+"'>尾页";

}else{

displayTag+="

+pageCount+"'>尾页";

}

}else{

displayTag+="尾页";

}

if(currentG

System.out.println(currentG+"|"+lastG);

if(flag==false){

displayTag+="

PageIndex="

+(start+perP)+"'>下"+perP+"页";

}else{

displayTag+="

+(start+perP)+"'>下"+perP+"页";

}

}else{

displayTag+="下"+perP+"页";

}

displayTag+="(第"+currentPageIndex+"页/";

displayTag+="共"+pageCount+"页,共"+last+"条记录)";

displayTag+="";

displayTag+="]";

displayTag+="

+this.gowhich+"'/>";

displayTag+="

+pageCount+"'/>";

JspWriterjspwriter=pageContext.getOut();

jspwriter.write(displayTag);

}

}

}

MyHibernate3分页标签(4)—baseDao分页查询部分

@SuppressWarnings("unchecked")

//标准分页

publicQueryResultgetScrollData(ClassentityClass,

LinkedHashMapwhereCon,

LinkedHashMapwhereLike,intfirstindex,

intmaxresult,LinkedHashMaporderBy){

QueryResultqr=newQueryResult();//查询结果对象记录着返回结果集List和结果集大小

StringentitName=entityClass.getName();

Stringarg0="from"

+entitName

+"o"

+((whereCon==null||whereCon.size()==0)?

"":

"where"

+getWhereCon(whereCon));

if(whereCon==null||whereCon.size()==0){

arg0+=((whereLike==null||whereLike.size()==0)?

""

:

"where"+getWhereLike(whereLike));

}else{

arg0+=((whereLike==null||whereLike.size()==0)?

""

:

"and"+getWhereLike(whereLike));

}

Stringarg1=arg0+this.buildorderby(orderBy);

query=this.getSession().createQuery(arg1);

if(whereCon!

=null&&whereCon.size()>0){

setQueryparams((org.hibernate.Query)query,whereCon);//如果有=条件则加参数列表

}

if(firstindex!

=-1&&maxresult!

=-1){

query.setFirstResult(firstindex);

query.setMaxResults(maxresult);

}

qr.setResultlist(query.list());//得到查询结果返回list

query=this.getSession().createQuery("selectcount(o)"+arg0);

if(whereCon!

=null&&whereCon.size()>0){

setQueryparams(query,whereCon);

}

qr.setTotalrecord((Long)query.list().get(0));//得到查询结果得到记录数总数

returnqr;

}

//自定义分页查询

publicQueryResultgetScrollData(Stringhql,StringhqlCount,

intfirstindex,intmaxresult){

QueryResultqr=newQueryResult();

query=this.getSession().createQuery(hql);

if(firstindex!

=-1&&maxresult!

=-1){

query.setFirstResult(firstindex);

query.setMaxResults(maxresult);

}

qr.setResultlist(query.list());//得到查询结果返回list

query=this.getSession().createQuery(hqlCount);

qr.setTotalrecord((Long)query.list().get(0));//得到查询结果得到记录数总数

returnqr;

}

MyHibernate3分页标签(5)—action调用及html显示

privateHttpServletRequestrequest;

privateHttpServletResponseresponse;

publicHttpServletRequestgetRequest(){

returnrequest;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1