如果数据库查询太多,不方便显示一个网页,就考虑分页,只把一部分送到前台,减少数据传输量,提高显示速度。
1、后台方法:获取servlet、controller或action分页的文章,发送到前台
importorg.apache.log4j.Logger;
importjava.util.List;
import javax.servlet.http.http servlet request;
importorg.spring framework.JDBC.core.JDBC template;
importshown.JdbcUtil;
公共类别管理器
privatestaticfinalloggerlogger=logger.getlogger (page util.class );
//*
获取寻呼查询后的列表
*@paramqueryString查询语句
*@paramcountPerPage页面上显示的记录数
*@parampagePerShow每页显示的页码数
*/
publicstaticlistpagedlist (httpservletrequestrequest,String queryString,Integer countPerPage,Integer pagePerShow ) {
applicationcontextapc=webapplicationcontextutils.getrequiredwebapplicationcontext (request.getsesssion ).getservletcontcon
jdbctemplatejdbctemplate=(JDBC template ) APC.getbean(JDBCtemplate );
string currpage=request.getparameter (paged _ dbquery _ current );
string total page=request.getparameter (paged _ dbquery _ total );
if (currpage==null|| currpage.equals (' ) ) }
currPage='1'; //初始化当前页面
(if ) pagepershow==null|| pagepershow=2) {
pagePerShow=10; //初始化显示的页数
} if (count perpage==null|||count perpage=0) )
countPerPage=10; 初始化//1页上显示的记录数
} if (total page==null|) )。
int results=JDBC template.query forint (select count ) from ) ) as querytable );
intt=results%countPerPage==0? 结果/计数perpage 3360结果/计数perpage 1;
totalPage=results==0? '0':t ';
//初始化总页码,如果request不重新查询,则避免每次查询数据库,减少不必要的查询浪费
}
query string=' limit ' (integer.parseint (currpage (-1 ) *countPerPage ),' countPerPage;
request.set attribute (' paged _ dbquery _ current ',currPage );
request.set attribute (paged _ dbquery _ total ),totalPage );
request.set attribute (paged _ dbquery _ pagepershow ),pagepershow;
Logger.debug(querystring ); //打印:带有寻呼信息的查询语句
returnjdbctemplate.queryforlist (query string;
}
2、首页:在需要显示内容的页面上:
3、处理页面: pagedDbQuery.jsp
函数公式(current ) {
var current _ form=document.forms [ ' $ { param.form _ name } ];
current _ form.action=current _ form.action '? paged _ dbquery _ total=' $ { paged _ dbquery _ total } ' paged _ dbquery _ current=' current;
current_form.submit (;
}
int curpage=integer.parseint (request.getattribute (paged _ dbquery _ current ).toString ) ); //当前页面
int total=integer.parseint (request.getattribute (paged _ dbquery _ total ).toString ) ); //总页码
intpagepershow=integer.parseint (request.getattribute (paged _ dbquery _ pagepershow ).toString ) ) 2; //1页上显示的分页符数
intpre=curpage1? curpage-1:1; //上一页
intnext=curpage
intbegin=curpagepagePerShow? curpage-pagePerShow:1; //分页起始页
intend=curpage pagePerShow
%
总页面数
(上一页
第一
' end=''varStatus='current '
() )。
页面
(下一页
附件:处理页面pagedDbQuery.jsp的另一种实现方法:用纯页面java代码实现
将部分也替换为java代码,以避免页面使用jstl。 对于那些喜欢用jsp写脚本的甜蜜的懒汉们可能更舒服: