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

caoyanan_com 2013-12-06 04:01:39
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里的一样
网上搜索了一圈没有结果
请指教
...全文
4194 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_20813405 2014-09-15
  • 打赏
  • 举报
回复
整列隐藏的话用这个<th data-options="field:'id',width:180,sortable:'ture',align:'center',hidden:true">id</th> 主要是这个 hidden:true <%--id已隐藏--%>
u014737319 2014-04-16
  • 打赏
  • 举报
回复
用data代替url也可以解决这个问题,直接把字符串用ajax传到页面,再用eval()转成json对象,给data:就可以了
u014737319 2014-04-15
  • 打赏
  • 举报
回复
还有,easyui不支持带有特殊字符的路径,如~这样的字符。
u014737319 2014-04-15
  • 打赏
  • 举报
回复
@Action(value="getJsonList",results={ @Result(name="json", type="json", params={"root","total","root","rows"}) }) public String getJsonList() throws SQLException{ rows = tdi.test(); total = rows.size(); return "json"; } 这样配置试试,我的这样弄是可以显示的
QQ2472322319 2014-04-10
  • 打赏
  • 举报
回复
把获得的json 外层的[ ]去掉 用substring
onstepr 2014-01-26
  • 打赏
  • 举报
回复
引用 27 楼 IceCrystalKin 的回复:
问题解决了没?我也遇到了这么奇葩的问题,郁闷啊!!!
你的问题解决了吗?
onstepr 2014-01-26
  • 打赏
  • 举报
回复
万恶的 这两天我也遇到这样的问题了 一天了都没有解决 LZ怎么解决的?
crystalkin 2014-01-24
  • 打赏
  • 举报
回复
问题解决了没?我也遇到了这么奇葩的问题,郁闷啊!!!
caoyanan_com 2013-12-26
  • 打赏
  • 举报
回复
看来没人这么做过
caoyanan_com 2013-12-23
  • 打赏
  • 举报
回复
华夏第一帅神 2013-12-21
  • 打赏
  • 举报
回复
Ajax不是需要response响应吗
留下您的微笑 2013-12-20
  • 打赏
  • 举报
回复
配置文件
<property name="mediaTypes">
            <map>
                <entry key="json" value="application/json" />
                <entry key="xml" value="application/xml" />
            </map>
        </property>
F12看前台URL是否有值;ajax请求的代码贴下
caoyanan_com 2013-12-20
  • 打赏
  • 举报
回复
引用 22 楼 huasuan26 的回复:
$("#buttonGrid").datagrid({
		url:appPath+'/page/button/buttonlist',
		height : 550,
		striped: true,
		remoteSort:false,
		queryParams: getQueryParam(),
		idField:'buttonCode',
		checkbox:true,
		frozenColumns:[[
		      {field:'ck',checkbox:true},
		      {field:'opt',title:'操作',width:32,align:'center',
		    	  formatter:function(value,rowData,rowIndex){
		    	  		var dataStr = JSON.stringify(rowData);
		    		  return "<img class='op-enable' src='"+appPath+"/js/lib/jquery-easyui/themes/icons/pencil.png' title='编辑' onClick='showEdit("+dataStr+")'/>";
		    	  }
		      }
		                ]],
		columns:[[
			  {field:'buttonCode',title:'按钮编码',width:100,align:'left',sortable:true},
		      {field:'buttonName',title:'按钮名称',width:100,align:'left',sortable:true},
		      {field:'buttonType',title:'按钮类型',width:100,align:'left',sortable:true},
		      {field:'username',title:'添加人',width:100,align:'left',sortable:true},
		      {field:'addTimeString',title:'添加时间',width:200,align:'left',sortable:true},
		      {field:'editTimeString',title:'修改时间',width:200,align:'left',sortable:true},
		      {field:'isDelete',title:'是否删除',width:400,align:'left',sortable:true}
		      ]],
这样写试过没有
这样肯定是可以的,但是我需要不要操作过多js的方式
留下您的微笑 2013-12-20
  • 打赏
  • 举报
回复
$("#buttonGrid").datagrid({
		url:appPath+'/page/button/buttonlist',
		height : 550,
		striped: true,
		remoteSort:false,
		queryParams: getQueryParam(),
		idField:'buttonCode',
		checkbox:true,
		frozenColumns:[[
		      {field:'ck',checkbox:true},
		      {field:'opt',title:'操作',width:32,align:'center',
		    	  formatter:function(value,rowData,rowIndex){
		    	  		var dataStr = JSON.stringify(rowData);
		    		  return "<img class='op-enable' src='"+appPath+"/js/lib/jquery-easyui/themes/icons/pencil.png' title='编辑' onClick='showEdit("+dataStr+")'/>";
		    	  }
		      }
		                ]],
		columns:[[
			  {field:'buttonCode',title:'按钮编码',width:100,align:'left',sortable:true},
		      {field:'buttonName',title:'按钮名称',width:100,align:'left',sortable:true},
		      {field:'buttonType',title:'按钮类型',width:100,align:'left',sortable:true},
		      {field:'username',title:'添加人',width:100,align:'left',sortable:true},
		      {field:'addTimeString',title:'添加时间',width:200,align:'left',sortable:true},
		      {field:'editTimeString',title:'修改时间',width:200,align:'left',sortable:true},
		      {field:'isDelete',title:'是否删除',width:400,align:'left',sortable:true}
		      ]],
这样写试过没有
caoyanan_com 2013-12-20
  • 打赏
  • 举报
回复
引用 20 楼 huasuan26 的回复:
配置文件
<property name="mediaTypes">
            <map>
                <entry key="json" value="application/json" />
                <entry key="xml" value="application/xml" />
            </map>
        </property>
F12看前台URL是否有值;ajax请求的代码贴下
我自己写的alert的地方会打印出值 ,没有ajax请求的代码
caoyanan_com 2013-12-19
  • 打赏
  • 举报
回复
引用 16 楼 hjw506848887 的回复:
引用 14 楼 caoyanan_com 的回复:
现在data就是string 内容就是 {"total":19,"rows":[{"id":"a","name":"s"},{...},{...}]}
string不行的,easyui接的是json对象而不是一个json转后的字符串。。。加上struts2-json-plugin.jar这个插件,然后后台你就不用管了,直接似list对象,在前台会自动转化为json对象,正确显示在datagrid上面了、、、、
直接 把这个 ulist(加了get/set方法) 传到前台 也没有显示
linuxca 2013-12-19
  • 打赏
  • 举报
回复
linuxca 2013-12-19
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
引用 14 楼 caoyanan_com 的回复:
现在data就是string 内容就是 {"total":19,"rows":[{"id":"a","name":"s"},{...},{...}]}
string不行的,easyui接的是json对象而不是一个json转后的字符串。。。加上struts2-json-plugin.jar这个插件,然后后台你就不用管了,直接似list对象,在前台会自动转化为json对象,正确显示在datagrid上面了、、、、
  • 打赏
  • 举报
回复
你这样在前台的easyui得到的不是一个json对象,而是一个字符串,你加上struts-json包,就直接传list对像就行了,不用那么麻烦了
加载更多回复(14)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧