情况汇总:过滤不需要的参数,action返回的action不为NONE
情况一:过滤不需要的参数
如果是分页查询数据的话,首先将不必要的字段过滤了,如:currentPage,DetachedCriteria,pageSize.
通过以下代码完成
JsonConfig config = new JsonConfig(); config.setExcludes(new String[]{"currentPage","dc","pageSize"}); //将pageBean转化为json String json = JSONArray.fromObject(pb,config).toString();
此时,返回的json数据是如下类型:
[ { "rows":[ { "decidedzones":[], "deltag":"", "haspda":"1" ,"id":"297e95de5ef6a63e015ef6ca27030000", "name":"lsi", "standard":"正常", "station":"tudou", "telephone":"18345678999" } ], "total":4 } ]
如果要想在页面中接收到数据必须要将最外层的中括号去了。我是通过求其子字符串完成的。如下:
json = json.substring(1, json.length()-1);
然后,将其写会页面中。
//帮pageBean写入页面中 ServletActionContext.getResponse().setContentType("text/json;charset=utf-8"); ServletActionContext.getResponse().getWriter().print(json); return NONE;
如果,json中的key与easyui中datagrid的columns的field属性一致的话即可正确显示
情况二:action中return不为NONE
因为datagrid使用的是类似于ajax的请求,不会刷新页面,自然而然的不需要使用struts.xml中的result标签。return NONE;表示不会跳转界面,直接返回到jsp中