论坛首页 Java版 企业应用

我做了垃圾的 taglib分页标签 贡献出来

浏览 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;
}





}
  • pagetag.rar (2.3 KB)
  • 描述: 里面是原文件和page tld
  • 下载次数: 50
   
最后更新时间:2007-04-17
楼主:

说下使用方法啊
   
0 请登录后投票
最后更新时间:2007-04-17
引用
<page:pagetag path="newsCenter/news.do?" pu="pu"/>


应该是这个吧。
   
0 请登录后投票
论坛首页 Java版 企业应用

跳转论坛:
JavaEye推荐