日期:2014-05-18  浏览次数:20958 次

easyui-datagrid url 调用action 数据在table中不显示
action :

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吗
------解决方案--------------------
datagrid是ajax请求
------解决方案--------------------
1.首先你确认已经跑到后台了,如果已经调用actin
2.如果已经调用到action,我目测问题是这样的,你调下试试
把JSONArray json = JSONArray.fromObject(map);
换成 private JSONObject json;
     set get方法

     json = JSONObject.fromObject(map);

------解决方案--------------------
你浏览器调试看看 。data 里面是怎么放数据的  F12
------解决方案--------------------
引用:
现在data就是string 内容就是  {"total":19,"rows":[{"id":"a","name":"s"},{...},{...}]}
string不行的,easyui接的是json对象而不是一个json转后的字符串。。。加上struts2-json-pl