easyui-datagrid url调用action 数据在table中无法显示public String list() { try { List<UserBean> ulist = userService.getAllUser(); Map<String, Object> map=new HashMap<String, Object>(); map.put("total",new Integer(ulist.size())); map.put("rows",ulist); JSONArray json = JSONArray.fromObject(map); dataString = json.toString(); dataString = dataString.substring(1, dataString.length()-1); log.info("dataString: "+dataString); return SUCCESS; } catch (Exception e) { log.error("----------error----------", e); return "error"; } }
struts.xml :
<action name="listUser" class="com.myssh.demo.action.UserAction" method="list"> <result name="success" type="json" > <param name="root">dataString</param> </result> <result name="error">/WEB-INF/jsp/error.jsp</result> </action>
jsp :
<table id="mydatagrid" class="easyui-datagrid" title="DataGrid Complex Toolbar" style="width:700px;height:250px" data-options="rownumbers:true,singleSelect:true,url:'<c:url value="userinfo/listUser"/>', method:'get',toolbar:'#tb',loadFilter: function(data){ alert(data); }"> <thead> <tr> <th data-options="field:'id',width:80">id</th> <th data-options="field:'name',width:100">name</th> <th data-options="field:'password',width:80,align:'right'">password</th> </tr> </thead> </table>
刚开始用这个easyui, jsp是在官网的demo拷出来的,原来url:‘datagrid_data1.json’ 能显示 ,后改成action地址就不显示了 确认action已经被调用(log打印了) 确认返回的json格式正确,jsp上有alert(data)的 和demo里的一样 网上搜索了一圈没有结果 return返回值不应该是map吗
1.首先你确认已经跑到后台了,如果已经调用actin 2.如果已经调用到action,我目测问题是这样的,你调下试试 把JSONArray json = JSONArray.fromObject(map); 换成 private JSONObject json; set get方法
json = JSONObject.fromObject(map); string不行的,easyui接的是json对象而不是一个json转后的字符串。。。加上struts2-json-plugin.jar这个插件,然后后台你就不用管了,直接似list对象,在前台会自动转化为json对象,正确显示在datagrid上面了、、、、
|