List轉分頁物件
阿新 • • 發佈:2019-01-10
今天,在呼叫公共介面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; }