1. 程式人生 > >easyui中datagrid顯示資料的時候報Cannot read property 'length' of undefined

easyui中datagrid顯示資料的時候報Cannot read property 'length' of undefined

最近在搭一個框架,頁面開發完後,發現沒有資料顯示,經查詢是因為js報錯了,錯誤資訊如下:

Cannot read property 'length' of undefined

進一步檢視原因,是因為rows.length報的錯,說明沒有rows這個變數,但是檢視後臺程式碼是有資料返回的,後臺部門程式碼如下:

Map<String, Object> map = new HashMap<String, Object>();
map.put("total", userPage.getRecordSum());
map.put("rows", userPage.getRecordList());
		
String result = JSONObject.toJSONString(map);

這是在另外一個框架中複製出來的程式碼,之前一直用著也沒有發現問題。後來在網上查詢相關文章後,意識到js中處理的引數必須是JSON物件,而不能是JSON格式的字串,而我這邊恰恰是轉換成字串後返回的,如果沒有在js中使用JSON.parse(str)轉換的話,就無法讀取,後來修改後臺程式碼後解決了問題,程式碼如下:

Map<String, Object> map = new HashMap<String, Object>();
map.put("total", page.getRecordSum());
map.put("rows", page.getResults());
		
return map;

因為在方法上面加了@ResponseBody,所以map就被轉換成JSON物件返回到頁面了,這樣js中就能正常讀取了。