情況匯總:過濾不需要的參數,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中