浏览 1146 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-02-19
看本论坛的hibernate的动态查询分页的讨论,做了一个分页的标签
虽然很垃圾,没办法,我还是帖出来,希望大家能有用. 基本上可以通用分页 希望大家能告诉我 更好的分页标签 <page:pagetag path="newsCenter/news.do?" pu="pu"/> import com.views.form.NewsForm; /** * MyEclipse Struts * Creation date: 02-17-2007 * * XDoclet definition: * @struts.action path="/news" name="newsForm" input="/form/news.jsp" scope="request" validate="true" */ public class NewsAction extends Action { // --------------------------------------------------------- Instance Variables // --------------------------------------------------------- Methods private NewsServices ns; /** * Method execute * @param mapping * @param form * @param request * @param response * @return ActionForward */ public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { NewsForm newsForm = (NewsForm) form; int page= Integer.parseInt(request.getParameter("page")); PageUtil pu= ns.findNews( new Integer(1),page,"id"); request.setAttribute("pu",pu); return mapping.findForward("list"); } public NewsServices getNs() { return ns; } public void setNs(NewsServices ns) { this.ns = ns; } } <%@ page language="java" import="java.util.*,com.util.*,com.bean.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %> <%@ taglib uri="/WEB-INF/page.tld" prefix="page" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html:html lang="true"> <head> <html:base /> <title>MyJsp.jsp</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> <% PageUtil pu=(PageUtil)request.getAttribute("pu"); Iterator it= pu.getList().iterator(); while(it.hasNext()){ News ne=(News)it.next(); %> <%=ne.getTitle()%> <%}%> <page:pagetag path="newsCenter/do?" pu="pu"/> </body> </html:html> package com.Services.Impl; import java.util.List; import com.ADO.INewsDAO; import com.ADO.Impl.*; import com.Services.INewsServices; import com.bean.News; import com.util.Page; import com.util.PageUtil; public class NewsServices implements INewsServices { private INewsDAO newsado; /* (非 Javadoc) * @see com.Services.Impl.INewsServices#Create(com.bean.News) */ public void Create(News news){ newsado.save(news); } /* (非 Javadoc) * @see com.Services.Impl.INewsServices#findNews(java.lang.Integer, int, com.util.Page, java.lang.String) */ public PageUtil findNews( Integer Id ,int page, String str){ int count=newsado.getCount(); System.out.println("size:"+ count); Page pg=new Page(count,5 ); pg.setNowPage(page); return newsado.findList(Id,pg,"id"); } public INewsDAO getNewsado() { return newsado; } public void setNewsado(INewsDAO newsado) { this.newsado = newsado; } } mport org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.ADO.IBaseDAO; import com.ADO.INewsDAO; import com.util.Page; import com.util.PageUtil; import com.bean.*; public class NewsDAO extends HibernateDaoSupport implements INewsDAO { private PageUtil pu; /* (非 Javadoc) * @see com.ADO.Impl.INewDAO#findList(java.lang.Integer, com.util.Page, java.lang.String) */ /* (非 Javadoc) * @see com.ADO.Impl.INewsDAO#findList(java.lang.Integer, com.util.Page, java.lang.String) */ public PageUtil findList(Integer Id ,Page page ,String order){ DetachedCriteria dc = DetachedCriteria.forClass(News.class); dc.add(Restrictions.eq("classId",Id)); List list=findby(dc,page.getFirstIndex(),page.getPageSize(),order); System.out.println("size:"+list.size()); return new PageUtil(page,list); } public void save ( News news){ getHibernateTemplate().save(news); } public int getCount( ){ String hql=" from News as news"; int count=0; Session session = null; session = (Session)this. getSession(); List list =session.createQuery(hql).list(); if(list==null) return count=0; return count=list.size(); } /* (非 Javadoc) * @see com.ADO.Impl.INewDAO#findby(org.hibernate.criterion.DetachedCriteria, int, int, java.lang.String) */ /* (非 Javadoc) * @see com.ADO.Impl.INewsDAO#findby(org.hibernate.criterion.DetachedCriteria, int, int, java.lang.String) */ public List findby(final DetachedCriteria dc,final int firstIndex, final int size ,final String order){ return (List) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Criteria criteria = dc.getExecutableCriteria(session); criteria.addOrder(Order.asc("id")); List items = criteria.setFirstResult(firstIndex).setMaxResults(size).list(); return items; } }, true); } public PageUtil getPu() { return pu; } public void setPu(PageUtil pu) { this.pu = pu; } } mport org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.ADO.INewsDAO; import com.util.Page; import com.util.PageUtil; import com.bean.*; public class NewsDAO extends HibernateDaoSupport implements INewsDAO { private PageUtil pu; /* (非 Javadoc) * @see com.ADO.Impl.INewDAO#findList(java.lang.Integer, com.util.Page, java.lang.String) */ /* (非 Javadoc) * @see com.ADO.Impl.INewsDAO#findList(java.lang.Integer, com.util.Page, java.lang.String) */ public PageUtil findList(Integer Id ,Page page ,String order){ DetachedCriteria dc = DetachedCriteria.forClass(News.class); dc.add(Restrictions.eq("classId",Id)); List list=findby(dc,page.getFirstIndex(),page.getPageSize(),order); System.out.println("size:"+list.size()); return new PageUtil(page,list); } public void save ( News news){ getHibernateTemplate().save(news); } //取得记录总数 public int getCount( ){ String hql=" from News as news"; int count=0; Session session = null; session = (Session)this. getSession(); List list =session.createQuery(hql).list(); if(list==null) return count=0; return count=list.size(); } /* (非 Javadoc) * @see com.ADO.Impl.INewDAO#findby(org.hibernate.criterion.DetachedCriteria, int, int, java.lang.String) */ /* (非 Javadoc) * @see com.ADO.Impl.INewsDAO#findby(org.hibernate.criterion.DetachedCriteria, int, int, java.lang.String) */ public List findby(final DetachedCriteria dc,final int firstIndex, final int size ,final String order){ return (List) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Criteria criteria = dc.getExecutableCriteria(session); criteria.addOrder(Order.asc("id")); List items = criteria.setFirstResult(firstIndex).setMaxResults(size).list(); return items; } }, true); } public PageUtil getPu() { return pu; } public void setPu(PageUtil pu) { this.pu = pu; } } 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2007-04-17
楼主:
说下使用方法啊 |
|
| 返回顶楼 | |
|
最后更新时间:2007-04-17
引用 <page:pagetag path="newsCenter/news.do?" pu="pu"/>
应该是这个吧。 |
|
| 返回顶楼 | |




