public static void convToJSONAndWriteToClient
(HttpServletResponse response,List ObjectList,int pageNum,int pageSize){
try{
if(ObjectList.size()==0){
//没有数据时,rows后面的[]一定要加上,否则页面会保留上一次查询得到的rows内容
String json = "{\"total\":0, \"rows\":[]}";
response.getWriter().write(json);
}else{
int toIndex = 0 ;
int fromIndex = 0;
int listSize = ObjectList.size();
if(listSize < pageSize){
//不足一页
toIndex = listSize;
}else if(listSize<=pageNum*pageSize){
//当前页是末页
fromIndex = (pageNum-1)*pageSize;
toIndex = listSize;
}else{
//当前页不是末页
fromIndex = (pageNum-1)*pageSize;
toIndex = pageNum*pageSize;
}
//list的截取是通过下标计算的,从0开始
JSONArray jsonAry=JSONArray.fromObject(ObjectList.subList(fromIndex,toIndex));
response.setContentType("text/json;charset=UTF-8");
String json = "{\"total\":"+ObjectList.size()+" , \"rows\":"+jsonAry.toString()+"}";
response.getWriter().write(json);
}
} catch (IOException e) {
e.printStackTrace();
}
}