public Page<Record> paginate(int pageNumber, int pageSize,String name,String tel) { String sql_begin="SELECT boss.name,boss.telephone,shop_type.type_name,tel,address,shop.is_show,shop.is_del,examination,shop.add_time,examination_time "; StringBuffer sql_search=new StringBuffer(" FROM shop LEFT JOIN boss ON b_id = boss.id LEFT JOIN shop_type ON t_id = shop_type.id "); if(!StringUtils.isEmpty(tel)){ sql_search.append(" and shop.tel="); sql_search.append(tel); } if(!StringUtils.isEmpty(name)){ sql_search.append(" and shop.name like '"); sql_search.append(name); sql_search.append("%'"); } sql_search.append(" order by shop.id desc"); return Db.paginate(pageNumber, pageSize, sql_begin, sql_search.toString()); }
上面是我的service里面的方法
public void index(){ int pageNo=getParaToInt("pageNo",1);//获取要查询的页码 int limit=getParaToInt("limit",10);//页面数据条数 String telephone=getPara("tel");//要查询的电话号码 String userName=getPara("name");//店铺名称 Page<Record> page=shopService.paginate(pageNo, limit,userName,telephone); renderJson(page); }
上面是我controller里面的代码。
我前台通过ajax请求。jfinal返回给我的json数据是这样的
{ "list": [ { "columns": { "type_name": "餐馆", "address": "开发测试2", "examination": false, "name": "test", "is_del": true, "telephone": "18628379032", "tel": "7851120", "add_time": 1481016551000, "examination_time": 1481016554000, "is_show": true }, "columnValues": [ "餐馆", "开发测试2", false, "test", true, "18628379032", "7851120", 1481016551000, 1481016554000, true ], "columnNames": [ "type_name", "address", "examination", "name", "is_del", "telephone", "tel", "add_time", "examination_time", "is_show" ] }, { "columns": { "type_name": "超市", "address": "开发测试", "examination": false, "name": "test", "is_del": true, "telephone": "18628379032", "tel": "7851227", "add_time": 1480920450000, "examination_time": 1480920456000, "is_show": true }, "columnValues": [ "超市", "开发测试", false, "test", true, "18628379032", "7851227", 1480920450000, 1480920456000, true ], "columnNames": [ "type_name", "address", "examination", "name", "is_del", "telephone", "tel", "add_time", "examination_time", "is_show" ] } ], "pageNumber": 1, "pageSize": 10, "totalPage": 1, "totalRow": 2, "firstPage": true, "lastPage": true }
而和数据库表有映射关系的Page<Model>返回的json是这样的
{ "list": [ { "name": "dfdsad", "id": 113, "telephone": "15320436222", "addtime": 1480677653662, "isdel": 1 }, { "name": "奥特曼", "id": 112, "telephone": "18628379584", "addtime": 1479110762931, "isdel": 1 }, { "name": "奥特曼", "id": 111, "telephone": "18636987541", "addtime": 1478944304096, "isdel": 1 }, { "name": "test", "id": 106, "telephone": "18628379032", "addtime": 1471065195990, "isdel": 1 }, { "name": "test", "id": 102, "telephone": "18628379032", "addtime": 1471065195990, "isdel": 1 }, { "name": "test", "id": 101, "telephone": "18628379032", "addtime": 1471065195990, "isdel": 1 }, { "name": "test", "id": 100, "telephone": "18628379032", "addtime": 1471065195990, "isdel": 1 }, { "name": "test", "id": 99, "telephone": "18628379032", "addtime": 1471065195990, "isdel": 1 }, { "name": "test", "id": 98, "telephone": "18628379032", "addtime": 1471065195990, "isdel": 1 }, { "name": "test", "id": 97, "telephone": "18628379032", "addtime": 1471065195990, "isdel": 1 } ], "pageNumber": 1, "pageSize": 10, "totalPage": 11, "totalRow": 104, "firstPage": true, "lastPage": false }
希望知道的大神能指点一下,帮我解解惑。
跪谢!!!
因为你用的 fastjson 或 jackson 这类工具转换 Record 对象时,这些工具都是依赖于 record 中的 getter 方法,而 record 中有一个 getColumns() 方法,所以会对此方法返回的数据进行 json 转换
而 JFinalJson 可以自动识别 Record 对象,而且不依赖于 getter 方法进行转换