可以用eXtremeComponents,去看下吧

解决方案 »

  1.   

    分页最好交给Dao来做,Struts如果也来分页的代码,代码相当难看了。分页工具类:
    public class PageInfo {    // 总共符合条件的记录数目     
        private int recordCount;
        // 当前页数
        private int page;
        // 每页大小
        private int pageSize = 20;     
        // 页面传递的URL 
        private String url;  
        // 返回到页面上的html 
        private StringBuffer html=new StringBuffer();    
        // 页面传递的参数
        private HashMap paramMap=new HashMap();
        
        /**
         * 构造器1
         * @param page :起始页
         * @param url :换页后的URL地址
         */
        public PageInfo(int page,String url) {
            this.page = page;        
            this.url=url;
        }    
        
        /**
         * 构造器2
         * @param page : 起始页
         * @param url :换页后的URL地址
         * @param paramMap :URL后的参数
         */
        public PageInfo(int page,String url,HashMap paramMap) {
            this.page = page;       
            this.url=url;
            this.paramMap=paramMap;       
        }
        
        
        /**
         * 构造器3
         * @param page : 起始页
         * @param pagesize : 每页的记录数
         * @param url :换页后的URL地址
         */
          public PageInfo(int page,int pagesize,String url) {
              this.page = page;
              this.pageSize = pagesize;
              this.url=url;
          }
          
          
       /**
        *  构造器4
        * @param page : 起始页
        * @param pagesize  : 每页的记录数
        * @param url  :换页后的URL地址
        * @param paramMap  :URL后的参数
        */    
        public PageInfo(int page,int pagesize,String url,HashMap paramMap) {
            this.page = page;
            this.pageSize = pagesize;
            this.url=url;
            this.paramMap=paramMap;       
        }
       
      
        
        /**
     * <p>获取总记录数</p>
     * 
     * @return String
     */
        public int getRecordCount() {
            return recordCount;
        }
        
        /**
     * <p>设定总记录数</p>
     * 
     * @param loginUserId
     */
        public void setRecordCount(int recordCount) {
            this.recordCount = recordCount;
        }    /**
     * <p>获取起始页</p>
     * 
     * @return String
     */
        public int getPage() {
            return page;
        }    /**
     * <p>获取下一页页码</p>
     * 
     * @return String
     */
        public int getNextPage() {
            return page+1;
        }    /**
     * <p>获取前一页页码</p>
     * 
     * @return String
     */
        public int getPrePage() {
            return page-1;
        }    /**
     * <p>获取总记录数</p>
     * 
     * @return String
     */
        public int getPageSize() {
            return pageSize;
        }
        
        /**
     * <p>设定当前页</p>
     * 
     * @param page
     */
        public void setPage(int page) {
            this.page = page;
        }           /**
     * <p>设定用户登录ID</p>
     * 
     * @param pageSize
     */
        public void setPageSize(int pageSize) {
         this.pageSize = pageSize;
        }
        
        
        /**
     * <p>设定用户登录ID</p>
     * 
     * @param loginUserId
     */
        public int getPageCount() {
            return (int) Math.ceil((double) recordCount / pageSize);
        }    /**
         * 是否有前一页,如果当前页数=1则没有
         * @return 是否有前一页
         */
        public boolean isHasPrevPage() {
            if (page > 1) {
                return true;
            } else {
                return false;
            }
        }    /**
         * 是否有后一页,如果当前页数=总页数则没有
         * @return 是否有后一页
         */
        public boolean isHasNextPage() {
            if (page < getPageCount()) {
                return true;
            } else {
                return false;
            }
        }
            
        
        /**
         * 
         * 
         * @return
         */
        private  String ceateParamString(){
         String paramStr="";
         Iterator iterator=paramMap.keySet().iterator();
         if(iterator.hasNext()){
         String key=(String)iterator.next();
         paramStr=paramStr+"&"+key+"="+paramMap.get(key);
         }
         return paramStr;
        }
        
        /**
         * 
         * @return
         */
        public StringBuffer getHtml(){
        
             String paramString = new String();
          paramString=ceateParamString();     if(this.page>1){
         this.html.append("<a href='"+this.url+"?pageNum=1"+paramString+"'>首页</a>&nbsp;");
         this.html.append("<a href='"+this.url+"?pageNum="+this.getPrePage()+paramString+"'>上页</a>&nbsp;");
         }
         this.html.append("第"+this.getPage()+"/"+this.getPageCount()+"页&nbsp;");
         if(page < getPageCount()){
         this.html.append("<a href='"+this.url+"?pageNum="+this.getNextPage()+paramString+"'>下页</a>&nbsp;");
         this.html.append("<a href='"+this.url+"?pageNum="+this.getPageCount()+paramString+"'>尾页</a>&nbsp;");
         }
         return html;
        }
        
        public StringBuffer getHtml2(){
        
            String paramString = new String();
         paramString=ceateParamString();    if(this.page>1){
        this.html.append("<a href='"+this.url+"&pageNum=1"+paramString+"'>首页</a>&nbsp;");
        this.html.append("<a href='"+this.url+"&pageNum="+this.getPrePage()+paramString+"'>上页</a>&nbsp;");
        }
        this.html.append("第"+this.getPage()+"/"+this.getPageCount()+"页&nbsp;");
        if(page < getPageCount()){
        this.html.append("<a href='"+this.url+"&pageNum="+this.getNextPage()+paramString+"'>下页</a>&nbsp;");
        this.html.append("<a href='"+this.url+"&pageNum="+this.getPageCount()+paramString+"'>尾页</a>&nbsp;");
        }
        return html;
       }
    }