⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pagedbasebean.java

📁 以前做的一个j2ee的项目
💻 JAVA
字号:
package gov.gdlt.ssgly.taxweb.tag;

import java.util.*;

import javax.faces.component.*;
import javax.faces.event.*;

import gov.gdlt.ssgly.taxweb.comm.mbean.BaseManagedBean;
import gov.gdlt.ssgly.taxweb.comm.util.WebUtil;
import gov.gdlt.ssgly.taxcore.comm.event.BasePagedRequest;
import gov.gdlt.ssgly.taxcore.comm.bizinterface.ISsglyService;
import gov.gdlt.ssgly.taxcore.comm.bizdelegate.SsglyDelegate;
import gov.gdlt.ssgly.taxcore.comm.event.ResponseEvent;
import gov.gdlt.ssgly.taxcore.comm.event.BasePagedResponse;
import javax.faces.context.FacesContext;
import gov.gdlt.ssgly.taxcore.taxevent.rwgl.SendMsgReqEvent;

public abstract class PagedBaseBean extends BaseManagedBean {
    //用于显示表的List
    protected List objectList = new ArrayList();
    //当前页
    protected int pageNo = 1;
    //每页多少行
    protected int pageSize = 20;
    //总的页数
    protected int totalPageCount = 0;
    //查询出的总记录数
    protected int totalCount = 0;
    //一次显示多少个分页标签
    protected int countPage = 0;
    //上一页的图标
    protected String preImg = null;
    //下一页的图示
    protected String nextImg = null;
    //需要排序的列
    protected String _sort;
    //排序的方式:升序、降序
    protected boolean _ascending;
    public PagedBaseBean() {
        objectList = null;
    }

    public int getPageNo() {
        return pageNo;
    }

    public void SortColumns(String sortColumn) {
        if (sortColumn == null) {
            throw new IllegalArgumentException("排序列不能为空!");
        }

        if (sortColumn.equals(_sort)) {
            //current sort equals new sortColumn -> reverse sort order
            _ascending = !_ascending;
        } else {
            //sort new column in default direction
            _sort = sortColumn;
            _ascending = isDefaultAscending(_sort);
        }

        sort(_sort, _ascending);
    }

    protected boolean isDefaultAscending(String sortColumn) {
        return true;
    }

    //排序抽象方法
    protected abstract void sort(String column, boolean ascending);

    public void setPageNo(int newValue) {
        this.pageNo = newValue;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int newValue) {
        this.pageSize = newValue;
    }

    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;
    }

    public void setCountPage(int CountPage) {
        this.countPage = CountPage;
    }

    public void setNextImg(String nextImg) {
        this.nextImg = nextImg;
    }

    public void setPreImg(String preImg) {
        this.preImg = preImg;
    }

    public void setAscending(boolean p_ascending) {
       // this._ascending = p_ascending;
    }

    public void setSort(String p_sort) {
       // this._sort = p_sort;
    }

    public List getContentList() throws Exception {
        /* jsf bug: 把pagedBean设为request scope时,
           如果datatable引用的值为null, 则datatable中的CommandLink无法跳转到指定的页面,
                 所以要返回一个不为空的list。这是有两个form的情况,一个包含datatable,一个包含分页的
                 scroller控件。(在单一form的情况下,分页不能正常跳转)
           但是,如果只有一个form时,例如form只包含分页控件,则不需要如下这段代码,否则出错。
                 因此,在这种情况下,为保证兼容性,要在datatable外包含多一个form,即使table中没有CommandLink。
         */

        if (objectList==null) {
            // need for restore view phase

            String pgNo = WebUtil.getParameterFromContextMap("pageNo");
            if (pgNo != null && pgNo.length() != 0) {
                pageNo = Integer.parseInt(pgNo);
                if (totalPageCount > 0) {
                    if (totalPageCount < pageNo)   pageNo = totalPageCount;
                }

                this.refreshObjectList(pageNo);
            } else {
                this.refreshObjectList(1);
            }

        }
        //排序方法
        String coumn = WebUtil.getParameterFromContextMap("sortCoulmn");
        if (coumn != null && !"".equals(coumn)) {
            _sort = WebUtil.getParameterFromContextMap("sort");
            _ascending = Boolean.valueOf(WebUtil.getParameterFromContextMap(
                    "ascending")).booleanValue();

            SortColumns(coumn);
        } else {
            _sort = WebUtil.getParameterFromContextMap("sort");
            _ascending = Boolean.valueOf(WebUtil.getParameterFromContextMap(
                    "ascending")).booleanValue();
            sort(_sort, _ascending);
        }

        return objectList;
    }

    public int getTotalPageCount() throws Exception {
        if (totalPageCount == 0) {
            getTotalPage();
        }
        return totalPageCount;
    }

    public int getTotalCount() {
        return totalCount;
    }

    public int getCountPage() {
        return countPage;
    }

    public String getNextImg() {
        return nextImg;
    }

    public String getPreImg() {
        return preImg;
    }

    public boolean isAscending() {
        return _ascending;
    }

    public String getSort() {
        return _sort;
    }

    public void processScrollEvent(ActionEvent event) throws Exception {
        int currentPage = 1;

        UIComponent component = event.getComponent();
        Integer curPage = (Integer) component.getAttributes().get("currentPage");
        if (curPage != null) {
            currentPage = curPage.intValue();
            pageNo = currentPage; // record the state
        }
        // scroll to the appropriate page in the ResultSet.
        refreshObjectList(currentPage);

        this.runExtraRoutine();
    }

    protected abstract void refreshObjectList(int currentPage) throws Exception;

    // 执行有关的预处理
    protected abstract void runExtraRoutine();

    protected abstract void getTotalPage() throws Exception;

    public int MathTotalAsCount(String id, Object o, int pagesize) throws Exception {
        BasePagedRequest req = new BasePagedRequest();
        req.setId(id);
        req.setOb(o);
        req.setDealMethod("getAll");
        ISsglyService service = new SsglyDelegate();
        ResponseEvent resp = service.invokeTask(req);
        BasePagedResponse bp = (BasePagedResponse) resp;
        //IPagedBean ssm = new PagedDAO();
        List list = bp.getList();
        totalCount = ((Integer) list.get(0)).intValue();

        if (totalCount % pagesize == 0) {
            return totalPageCount = totalCount / pagesize;

        } else {
            return totalPageCount = totalCount / pagesize + 1;
        }

    }

    public int MathTotal(String id, Object o, int pagesize) throws Exception {
    BasePagedRequest req = new BasePagedRequest();
    req.setId(id);
    req.setOb(o);
    req.setDealMethod("getAll");
    ISsglyService service = new SsglyDelegate();
    ResponseEvent resp = service.invokeTask(req);
    BasePagedResponse bp = (BasePagedResponse) resp;
    //IPagedBean ssm = new PagedDAO();
    List list = bp.getList();
    totalCount = list.size();

    if (totalCount % pagesize == 0) {
        return totalPageCount = totalCount / pagesize;

    } else {
        return totalPageCount = totalCount / pagesize + 1;
    }

}

    public List getSplitTable(String id, Object o,
                              int pagesizes,int page) throws Exception {
        BasePagedRequest req = new BasePagedRequest();
        req.setId(id);
        req.setOb(o);
        req.setPageSize(pagesizes);
        req.setPage(page-1);
        req.setDealMethod("getSplitList");
        ISsglyService service = new SsglyDelegate();
        ResponseEvent resp = service.invokeTask(req);
        BasePagedResponse bp = (BasePagedResponse) resp;
        objectList = bp.getSplitList();
        return objectList;
   }

   //在Seesion中进行分页操作
   public ArrayList getSession(ArrayList p_al,int pageSize,int currntPage){
   ArrayList  yjlbList=new ArrayList();
   for(int i=((currntPage-1)*pageSize);i<(currntPage*pageSize>p_al.size()?p_al.size():currntPage*pageSize);i++){
    yjlbList.add(p_al.get(i));
    }
    return yjlbList;
 }
 public int MathTotalInSeesion(ArrayList al,int pagesize) throws Exception {
   totalCount = al.size();
   if (totalCount % pagesize == 0) {
       return totalPageCount = totalCount / pagesize;

   } else {
       return totalPageCount = totalCount / pagesize + 1;
   }

}

public static String SendMessages(List nsrnbm,String Content){
 String result="ok";
 SendMsgReqEvent req=new SendMsgReqEvent();
 req.setNsrnbm(nsrnbm);
 req.setContenet(Content);
 req.setDealMethod("sendMsg");
 try{
     ISsglyService service = new SsglyDelegate();
     ResponseEvent resp = service.invokeTask(req);
 }catch(Exception e){
  result="errors";
  e.printStackTrace();
 }
 return result;
 }

 public static String SendMessages(String fl_dm,String Content){
 String result="ok";
 String lrry=(String)WebUtil.eval("#{user.userID}");
 if(fl_dm!=null && !"".equals(fl_dm)){
     SendMsgReqEvent req = new SendMsgReqEvent();
     req.setFl_dm(fl_dm);
     req.setContenet(Content);
     req.setLrry(lrry);
     req.setDealMethod("sendMsgByfldm");
     try {
         ISsglyService service = new SsglyDelegate();
         ResponseEvent resp = service.invokeTask(req);
     } catch (Exception e) {
         result = "errors";
         e.printStackTrace();
     }
 }
 return result;
 }
 public void querys(ActionEvent event) throws Exception{
     int currentPage = 1;
     refreshObjectList(currentPage);
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -