跪求Struts2 + Spring + Hibernate MVC框架的 分页显示代码 越详细越好 求大神帮忙 谢谢谢谢—————————————————————————————————————————— 不要从网上复制粘贴谢谢 我看过很多不是Struts1的就是写的很乱的
解决方案 »
- struts2+spring +hibernate
- 求助啊!!关于dtree
- java 获取 系统当前时间 并以一定格式放入数据库
- 谁有ssh整合的例子呀。带jar包的,我用myeclipse添加jar包时老出错,感激不尽
- jfreechart CategoryAxis TickMarks 刻度显示问题
- 那位好心的人帮帮忙啊 全部家当 数据库问题
- 关于Spring MVC的问题
- 分页代码问题!!!求救,我不懂里面各个参数的意思。
- 请问main(String args[])中args的用处,给出例子最好。
- 关于rmi-iiop和jndi的问题
- java.lang.IndexOutOfBoundsException: Index: 1, Size: 1,提示是153行出错,求大神帮解释下
- 如何令java线程池中线程超过5分钟时该线程自杀
package org.jb.common.util;import java.util.ArrayList;
import java.util.List;/**
*
* @author hailong.liu
*/
public class PageResult<E> {
private String orderBy = "";
private String sort = "asc";
private List<E> list = new ArrayList<E>(); //查询结果
private int pageNo = 1; //实际页号
private int pageSize = 15; //每页记录数
private int recTotal = 0; //总记录数
public List getList() {
return list;
}
public void setList(List<E> list) {
this.list = list;
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public int getPageSize() {
return (0==pageSize)?10:pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getRecTotal() {
return recTotal;
}
public void setRecTotal(int recTotal) {
this.recTotal = recTotal;
}
public int getPageTotal() {
int ret = (this.getRecTotal() - 1) / this.getPageSize() + 1;
ret = (ret<1)?1:ret;
return ret;
}
public int getFirstRec()
{
int ret = (this.getPageNo()-1) * this.getPageSize();// + 1;
ret = (ret < 1)?0:ret;
return ret;
}
public String getOrderBy() {
return orderBy;
}
public void setOrderBy(String orderBy) {
this.orderBy = orderBy;
}
public String getSort() {
return sort;
}
public void setSort(String sort) {
this.sort = sort;
}
}
package org.jb.common.taglib;import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;import org.jb.common.util.PageResult;
import org.jb.common.web.form.BaseForm;public class PaginationTag extends TagSupport {
private static final long serialVersionUID = -5904339614208817088L;
private String form = null;
@Override
public int doEndTag() {
try {
BaseForm oForm = null;
if (form!=null && !"".equals(form.trim())){
oForm = (BaseForm) pageContext.getRequest().getAttribute(form);
if (null==oForm){
oForm = (BaseForm) pageContext.getSession().getAttribute(form);
}
if (oForm!=null){
PageResult pageResult = oForm.getPageResult();
StringBuffer sb = new StringBuffer();
sb.append("<div style=\"text-align:right;padding:6px 6px 0 0;\">\r\n")
.append("共"+pageResult.getRecTotal()+"条记录 \r\n")
.append("每页显示<input name=\"pageResult.pageSize\" value=\""+pageResult.getPageSize()+"\" size=\"3\" />条 \r\n")
.append("第<input id=\"pageNo\" name=\"pageResult.pageNo\" value=\""+pageResult.getPageNo()+"\" size=\"3\" />页")
.append(" / 共"+pageResult.getPageTotal()+"页 \r\n")
.append("<a href=\"javascript:page_first();\">第一页</a> \r\n")
.append("<a href=\"javascript:page_pre();\">上一页</a>\r\n")
.append("<a href=\"javascript:page_next();\">下一页</a> \r\n")
.append("<a href=\"javascript:page_last();\">最后一页</a>\r\n")
.append("<input type=\"button\" onclick=\"javascript:page_go();\" value=\"转到\" />\r\n")
.append("<input type=\"hidden\" name=\"pageResult.orderBy\" value=\""+pageResult.getOrderBy()+"\" />\r\n")
.append("<input type=\"hidden\" name=\"pageResult.sort\" value=\""+pageResult.getSort()+"\" />\r\n")
.append("<script>\r\n")
.append(" var pageTotal = "+pageResult.getPageTotal()+";\r\n")
.append(" var recTotal = "+pageResult.getRecTotal()+";\r\n")
.append("</script>\r\n")
.append("</div>\r\n");
sb.append("<script>\r\n");
sb.append("function page_go()\r\n")
.append("{\r\n")
.append(" page_validate(); \r\n")
.append(" document.forms[0].submit();\r\n")
.append("}\r\n")
.append("function page_first()\r\n")
.append("{\r\n")
.append(" document.forms[0].elements[\"pageResult.pageNo\"].value = 1;\r\n")
.append(" document.forms[0].submit();\r\n")
.append("}\r\n")
.append("function page_pre()\r\n")
.append("{\r\n")
.append(" var pageNo = document.forms[0].elements[\"pageResult.pageNo\"].value;\r\n")
.append(" document.forms[0].elements[\"pageResult.pageNo\"].value = parseInt(pageNo) - 1;\r\n")
.append(" page_validate();\r\n")
.append(" document.forms[0].submit();\r\n")
.append("}\r\n")
.append("function page_next()\r\n")
.append("{\r\n")
.append(" var pageNo = document.forms[0].elements[\"pageResult.pageNo\"].value;\r\n")
.append(" document.forms[0].elements[\"pageResult.pageNo\"].value = parseInt(pageNo) + 1;\r\n")
.append(" page_validate();\r\n")
.append(" document.forms[0].submit();\r\n")
.append("}\r\n")
.append("function page_last()\r\n")
.append("{\r\n")
.append(" document.forms[0].elements[\"pageResult.pageNo\"].value = pageTotal;\r\n")
.append(" document.forms[0].submit();\r\n")
.append("}\r\n")
.append("function page_validate()\r\n")
.append("{\r\n")
.append(" var pageNo = document.forms[0].elements[\"pageResult.pageNo\"].value;\r\n")
.append(" if (pageNo<1)pageNo=1;\r\n")
.append(" if (pageNo>pageTotal)pageNo=pageTotal;\r\n")
.append(" document.forms[0].elements[\"pageResult.pageNo\"].value = pageNo;\r\n")
.append(" var pageSize = document.forms[0].elements[\"pageResult.pageSize\"].value;\r\n")
.append(" if (pageSize<1)pageSize=1;\r\n")
.append(" document.forms[0].elements[\"pageResult.pageSize\"].value = pageSize;\r\n")
.append("}\r\n")
.append("function order_by(field){\r\n")
.append(" document.forms[0].elements[\"pageResult.orderBy\"].value = field;\r\n")
.append(" page_first();\r\n")
.append("}\r\n");
sb.append("</script>\r\n");
JspWriter out = pageContext.getOut();
out.println(sb.toString());
}
}
} catch (Exception e) {
}
return EVAL_PAGE;
} public String getForm() {
return form;
} public void setForm(String form) {
this.form = form;
}
}
查询的时候,分页类传进去,页面上直接应用就出来了
* Dao实现类*/
public class PageDaoImpl extends HibernateDaoSupport implements IPageDao { // 实现添加用户的方法
public void adduser(User user) {
this.getHibernateTemplate().save(user);
} // 实现创建找到所有User的方法 offset代表从第几条记录开始查询 pagesize 代表每页显示多少条记录的方法
public PageModel findAllUser(int offset, int pagesize) {
// 创建HQL语句得到总记录数
String hql="select count(*) from User";
Query query=getSession().createQuery(hql);
int num=((Long)query.uniqueResult()).intValue();
// setFirstResult代表从第几个开始 setMaxResults代表每页要显示多少条
List i=getSession().createQuery("from User").setFirstResult(offset).setMaxResults(pagesize).list();
// 得到结果集
PageModel pm=new PageModel();
pm.setZong(num);
pm.setDangqian(i);
return pm;
}然后Action类里就不知道怎么写了