1. 程式人生 > >List轉分頁物件

List轉分頁物件

今天,在呼叫公共介面webService時候,返回值為List<Map<String, Object>> 。因為業務需要的是一個分頁物件(PaginationObject<QhyfhVO>),如下方法就是如何將List一個鍵值對的List轉換成分頁物件,也就是List<Map<String, Object>>轉換成PaginationObject<QhyfhVO>。

public PaginationObject<QhyfhVO> getQhyfhInfoList(String sql,
PaginationParam paginParam) {
int listItemSize;//記錄總數
int pageSize=paginParam.getPageSize();//每頁個數
int pageNum=paginParam.getPageNum();//當前頁
List<QhyfhVO> ret = new ArrayList();
try{ 
//第一次查詢,記錄所有記錄的條數
List<Map<String, Object>> listItem = webServiceUtil.getWSClintList(sql, new HashMap<String,Object>(),-1,-1, null);
listItemSize = listItem.size();//先查詢記錄總數
//第二次查詢,查詢每頁需要顯示的資訊
List<Map<String, Object>> list = webServiceUtil.getWSClintList(sql, new HashMap<String,Object>(),pageSize,pageNum, null);
if(!list.isEmpty()){
//將Map的物件逐個set進實體物件中
for(int i=0;i<list.size(); i++){
QhyfhVO vo=new QhyfhVO();
vo.setDate(list.get(i).get("RQ")+"");
vo.setName(list.get(i).get("NAME")+"");
vo.setPjwd(Double.parseDouble(list.get(i).get("PJWD")+""));
vo.setRzdfh(Double.parseDouble(list.get(i).get("RZDFH")+""));
vo.setZgwd(Double.parseDouble(list.get(i).get("ZGWD")+""));
vo.setZdwd(Double.parseDouble(list.get(i).get("ZDWD")+""));
ret.add(vo);
}
}

PaginationObject<QhyfhVO> p= UIComponents.transform(PaginationObject.class, paginParam);
p.setRowCount(listItemSize);
p.setPageNum(pageNum);//當前頁
p.setPageSize(pageSize);//每頁個數
p.setResultList(ret);//實體物件
return p;
}catch(Exception e){
e.printStackTrace();
}
return null;
}