📄 pagedbasebean.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 + -