Struts Spring Hibernate通用分页
来源:百度文库 编辑:神马文学网 时间:2024/04/27 18:00:14
Struts+Spring+Hibernate通用分页程序
package com.myecsun.util.helper;
import org.hibernate.Query;
import java.util.List;
import org.hibernate.Criteria;
//读取一页数据的通用类
/**================================
===================================*/
public class Page {
private List results;
private int pageSize;
private int page;
public Page() {
}
public Page(Query query,int pageSize,int page){
this.page=page;
this.pageSize=pageSize;
results=query.setFirstResult((page-1)*pageSize).setMaxResults(pageSize).list();
}
public Page(Criteria crit,int pageSize,int page){
this.page=page;
this.pageSize=pageSize;
results=crit.setFirstResult((page-1)*pageSize).setMaxResults(pageSize).list();
}
public boolean isHaveNextPage(){
return results.size()>pageSize;
}
public boolean isHavePreviousPage(){
return page>0;
}
public List getResultsList(){
return isHaveNextPage()?results.subList(0,pageSize-1):results;
}
}
本类在DAO中的使用方法为:
public Page getPosts(int pageSize, int page) {
return new Page(this.getSession().getNamedQuery("getGroups"),pageSize,page);
}
传入的参数分别为:一页显示数据的条数和当前页号
编写标签辅助类:
package com.myecsun.util.helper;
import javax.servlet.http.HttpServletRequest;
public class PageHelper {
public PageHelper() {
}
public OldPage getPageInfo(HttpServletRequest request, int total) {
try {
OldPage page = new OldPage();
int pageSize = 25;
String pageno = request.getParameter("pageno");
String totalcount = request.getParameter("totalcount");
String totalpage = request.getParameter("totalpage");
page.setPagesize(pageSize);
if (pageno == null || totalcount == null || totalpage == null) {
page.setPageno(1);
page.setTotalcount(total);
if (total % pageSize == 0) {
page.setTotalpage(total / pageSize);
}
else {
page.setTotalpage(total / pageSize + 1);
}
}
else {
page.setPageno(Integer.parseInt(pageno));
page.setTotalcount(Integer.parseInt(totalcount));
page.setTotalpage(Integer.parseInt(totalpage));
}
return page;
}
catch (NumberFormatException ex) {
System.out.println("ex is :" + ex.toString());
return null;
}
}
}
在标签中使用标签辅助类:
package com.myecsun.util.helper;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
/**
*/
public class PageTag
extends SimpleTagSupport {
private OldPage page;
private String action = null;
// private String nodeID;
public void setAction(String action) {
this.action = action;
}
public String getAction() {
return this.action;
}
public OldPage getPage() {
return this.page;
}
// public String getNodeID() {
// return nodeID;
// }
public void setPage(OldPage page) {
this.page = page;
}
// public void setNodeID(String nodeID) {
// this.nodeID = nodeID;
// }
public void doTag() throws JspException, IOException {
JspWriter out = getJspContext().getOut();
int totalpage = page.getTotalpage();
int totalcount = page.getTotalcount();
int pageno = page.getPageno();
int addpageno = pageno + 1;
int minpageno = pageno - 1;
int pageStart;
int pageEnd;
if (pageno - 4 > 0) {
pageStart = pageno - 3;
if (totalpage > pageno + 4) {
pageEnd = pageno + 4;
}
else {
pageEnd = totalpage;
}
}
else if("".equals(pageno)) {
pageStart = 1;
if (totalpage > 8) {
pageEnd = 8;
}
else {
pageEnd = totalpage;
}
}else{
pageStart = 1;
if (totalpage > 8) {
pageEnd = 8;
}
else {
pageEnd = totalpage;
}
}
out.println(" ");
");
}
}
编写.tld描述文件:
1.0
MyTag
page
com.myecsun.util.helper.PageTag
empty
page
true
true
action
false
true
nodeID
false
true
在Action中使用:
int total = groupService.getCount();
int page = pageHelper.getPageInfo(request, total).getPageno();
int pageSize = pageHelper.getPageInfo(request, total).getPagesize();
FastArrayList groups=new FastArrayList(groupService.getPosts(pageSize,page).getResultsList()); request.setAttribute("groups",groups);
request.setAttribute("page", pageHelper.getPageInfo(request, total));
return mapping.findForward("queryGroup");
在web.xml中配置taglib:
/page
/WEB-INF/mytld/page.tld
在网页中加入标签:
<%@taglib uri="/page" prefix="page"%>
<%@page import="com.myecsun.util.helper.OldPage"%>
" action="queryAction.html?method=queryGroup"/>
package com.myecsun.util.helper;
import org.hibernate.Query;
import java.util.List;
import org.hibernate.Criteria;
//读取一页数据的通用类
/**================================
===================================*/
public class Page {
private List results;
private int pageSize;
private int page;
public Page() {
}
public Page(Query query,int pageSize,int page){
this.page=page;
this.pageSize=pageSize;
results=query.setFirstResult((page-1)*pageSize).setMaxResults(pageSize).list();
}
public Page(Criteria crit,int pageSize,int page){
this.page=page;
this.pageSize=pageSize;
results=crit.setFirstResult((page-1)*pageSize).setMaxResults(pageSize).list();
}
public boolean isHaveNextPage(){
return results.size()>pageSize;
}
public boolean isHavePreviousPage(){
return page>0;
}
public List getResultsList(){
return isHaveNextPage()?results.subList(0,pageSize-1):results;
}
}
本类在DAO中的使用方法为:
public Page getPosts(int pageSize, int page) {
return new Page(this.getSession().getNamedQuery("getGroups"),pageSize,page);
}
传入的参数分别为:一页显示数据的条数和当前页号
编写标签辅助类:
package com.myecsun.util.helper;
import javax.servlet.http.HttpServletRequest;
public class PageHelper {
public PageHelper() {
}
public OldPage getPageInfo(HttpServletRequest request, int total) {
try {
OldPage page = new OldPage();
int pageSize = 25;
String pageno = request.getParameter("pageno");
String totalcount = request.getParameter("totalcount");
String totalpage = request.getParameter("totalpage");
page.setPagesize(pageSize);
if (pageno == null || totalcount == null || totalpage == null) {
page.setPageno(1);
page.setTotalcount(total);
if (total % pageSize == 0) {
page.setTotalpage(total / pageSize);
}
else {
page.setTotalpage(total / pageSize + 1);
}
}
else {
page.setPageno(Integer.parseInt(pageno));
page.setTotalcount(Integer.parseInt(totalcount));
page.setTotalpage(Integer.parseInt(totalpage));
}
return page;
}
catch (NumberFormatException ex) {
System.out.println("ex is :" + ex.toString());
return null;
}
}
}
在标签中使用标签辅助类:
package com.myecsun.util.helper;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
/**
*/
public class PageTag
extends SimpleTagSupport {
private OldPage page;
private String action = null;
// private String nodeID;
public void setAction(String action) {
this.action = action;
}
public String getAction() {
return this.action;
}
public OldPage getPage() {
return this.page;
}
// public String getNodeID() {
// return nodeID;
// }
public void setPage(OldPage page) {
this.page = page;
}
// public void setNodeID(String nodeID) {
// this.nodeID = nodeID;
// }
public void doTag() throws JspException, IOException {
JspWriter out = getJspContext().getOut();
int totalpage = page.getTotalpage();
int totalcount = page.getTotalcount();
int pageno = page.getPageno();
int addpageno = pageno + 1;
int minpageno = pageno - 1;
int pageStart;
int pageEnd;
if (pageno - 4 > 0) {
pageStart = pageno - 3;
if (totalpage > pageno + 4) {
pageEnd = pageno + 4;
}
else {
pageEnd = totalpage;
}
}
else if("".equals(pageno)) {
pageStart = 1;
if (totalpage > 8) {
pageEnd = 8;
}
else {
pageEnd = totalpage;
}
}else{
pageStart = 1;
if (totalpage > 8) {
pageEnd = 8;
}
else {
pageEnd = totalpage;
}
}
out.println("
共" + totalcount + "条," + totalpage + "页,当前是第" + pageno + "页 | "); "); if (pageno > 1) { out.println("+ "&pageno=1" + "&totalpage=" + totalpage + "&totalcount=" + totalcount + "\">"); } out.print("首页"); out.println(" "); if (pageno > 1) { out.println("+ minpageno + "&totalpage=" + totalpage + "&totalcount=" + totalcount + "\">"); } out.print("上页"); out.println(" "); //显示页数序列。Ex:1 2,3,4、、、、 for (int i = pageStart; i < pageEnd+1; i++) { out.println("+ i + "&totalpage=" + totalpage + "&totalcount=" + totalcount + "\">"); out.print(""); out.print(i); out.print(""); out.println(" "); } if (pageno < totalpage) { out.println("+ addpageno + "&totalpage=" + totalpage + "&totalcount=" + totalcount + "\">"); } out.print("下页"); out.println(" "); if (pageno < totalpage) { out.println("+ totalpage + "&totalpage=" + totalpage + "&totalcount=" + totalcount + "\">"); } out.print("末页"); out.println(" "); out.println(" |
}
}
编写.tld描述文件:
在Action中使用:
int total = groupService.getCount();
int page = pageHelper.getPageInfo(request, total).getPageno();
int pageSize = pageHelper.getPageInfo(request, total).getPagesize();
FastArrayList groups=new FastArrayList(groupService.getPosts(pageSize,page).getResultsList()); request.setAttribute("groups",groups);
request.setAttribute("page", pageHelper.getPageInfo(request, total));
return mapping.findForward("queryGroup");
在web.xml中配置taglib:
在网页中加入标签:
<%@taglib uri="/page" prefix="page"%>
<%@page import="com.myecsun.util.helper.OldPage"%>
Struts Spring Hibernate通用分页
struts hibernate分页
Java Spring Hibernate Struts
Struts+Spring+Hibernate
Struts Hibernate 分页的实现
Struts+Spring+Hibernate快速入门
struts+spring+hibernate快速入门
【Struts+Spring+Hibernate快速入门】
Struts+Spring+Hibernate实现上传下载
Struts+Spring+Hibernate的技術實現
Struts+Spring+Hibernate快速入门
Struts+Spring+Hibernate实现上传下载
Struts+Spring+Hibernate实现上传下载
Struts Spring Hibernate练习(完整)
Struts Spring Hibernate整合笔记
Struts Spring Hibernate快速入门
Struts+Spring+Hibernate实现上传下载
Struts Spring Hibernate整合笔记
Struts+Spring+Hibernate开发实例
Struts+Spring+Hibernate实现上传下载,JSP学习
Struts+Spring+Hibernate实现上传下载,JSP学习
Struts+Spring+Hibernate快速入门1
使用struts+spring+hibernate 组装web应用
使用struts+spring+hibernate 组装web应用