高手请进,关于Extjs获取后台数据的问题,高分求解

shuaiyz 2010-11-11 11:46:09
我最近正在学习spring mvc+extjs,想写一个增删改查的小例子,问题如下:
这是后台代码:
@RequestMapping("tolist.do")
public String tolist(){
terminallist=biz.getAll(Terminal.class);
total=terminallist.size();
if (total>0) {
success=true;
}else {
success=false;
}
JSONArray jsonArrayFromList = JSONArray.fromObject(terminallist);
System.out.println(jsonArrayFromList);//和上面打印的结果相同
return "index";
}
jsonArrayFroList输出:
fset":-480,"year":110},"charge_person":"1","is_active":"0","is_controllable":"0","is_readdable":"0","is_shuttable":"0","terminal_id":"132","terminal_type":"22","terminal_uid":13},{"active_time":{"date":3,"day":3,"hours":0,"minutes":0,"month":2,"nanos":0,"seconds":0,"time":1267545600000,"timezoneOffset":-480,"year":110},"charge_person":"山姆","is_active":"0","is_controllable":"0","is_readdable":"0","is_shuttable":"0","terminal_id":"123","terminal_type":"电控","terminal_uid":15}]


前台页面js:
<script>
Ext.onReady(function(){
Ext.QuickTips.init();
//定义store
var ds=new Ext.data.Store({
proxy:new Ext.data.HttpProxy({url:'tolist.do',method:'post'}),
reader:new Ext.data.JsonReader({
totalProperty:"total",
root:'terminallist'
},
[
{name:'terminal_uid',mapping:'terminal_uid'},
{name:'terminal_id',mapping:'terminal_id'},
{name:'terminal_type',mapping:'terminal_type'},
{name:'is_controllable',mapping:'is_controllable'},
{name:'is_shuttable',mapping:'is_shuttable'},
{name:'is_readdable',mapping:'is_readdable'},
{name:'charge_person',mapping:'charge_person'},
{name:'active_time',mapping:'active_time'},
{name:'is_active',mapping:'is_active'}
])
});
ds.load();
现在页面上获取不到列表
忘那位高手不吝赐教,谢谢!
...全文
295 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuaiyz 2010-11-15
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 asdujiayong 的回复:]
你的格式问题大了:
jsonReader:{name:'terminal_uid',mapping:'terminal_uid'}
你返回的terminallist中 连terminal_uid都没有 ,jsonReader怎么解析
{"total":8,"terminallist":[{"terminal_uid":1,"terminal_id":101,"terminal_type":"……
[/Quote]
{"total":8,"terminallist":[{terminal_uid:1,terminal_id:'101',terminal_type:'负控终端',is_controllable:'0',is_shuttable:'0',is_readdable:'1',charge_person:'张三',active_time:'2010-11-24 00:00:00.0',is_active:'0'},
{terminal_uid:20,terminal_id:'112',terminal_type:'客户端',is_controllable:'0',is_shuttable:'1',is_readdable:'0',charge_person:'李四',active_time:'2010-11-12 00:00:00.0',is_active:'1'}]}
asdujiayong 2010-11-12
  • 打赏
  • 举报
回复
你的格式问题大了:
jsonReader:{name:'terminal_uid',mapping:'terminal_uid'}
你返回的terminallist中 连terminal_uid都没有 ,jsonReader怎么解析
{"total":8,"terminallist":[{"terminal_uid":1,"terminal_id":101,"terminal_type":"负控终端"...},...}]}
shuaiyz 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 angel21li 的回复:]
执行下tolist.do,结果是什么
[/Quote]
{"total":8,"terminallist":[{1,101,负控终端,0,0,1,张三,2010-11-24 00:00:00.0,0},{5,109,电热能终端,0,0,0,李四,2010-11-07 00:00:00.0,0},{6,101,负控终端,0,1,1,张三,2010-11-16 00:00:00.0,1},{7,102,负控终端,1,1,1,张三,2010-11-03 00:00:00.0,0},{10,101,负控终端,0,0,0,张三,2010-11-02 00:00:00.0,0},{15,123,电控,0,1,0,山姆,2010-11-12 00:00:00.0,1},{19,111,光棍类型,0,1,0,山姆111,2010-11-12 00:00:00.0,1},{20,112,客户端,0,1,0,李四,2010-11-12 00:00:00.0,1}]}
现在格式应该对了。。。。。。。。接着哩。。。。。。。。。。
angel21li 2010-11-12
  • 打赏
  • 举报
回复
执行下tolist.do,结果是什么
asdujiayong 2010-11-12
  • 打赏
  • 举报
回复
{"total":8,"terminallist":[{"key1":"XXX","key2":"XXX"},{"key1":"XXX","key2":"XXX"}]}
shuaiyz 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 asdujiayong 的回复:]
JScript code
{"total":8,"terminallist":list}
[/Quote]
现在json字符串变成这个样子了,不知道对不对,我是按你说的那种办法组装的,可页面上还是获取不到数据。。。
{total:8,terminallist:[1,101,负控终端,2010-11-24 00:00:00.0, 5,109,电热能终端,2010-11-07 00:00:00.0, 6,101,负控终端,2010-11-16 00:00:00.0, 7,102,负控终端,2010-11-03 00:00:00.0, 10,101,负控终端,2010-11-02 00:00:00.0, 15,123,电控,2010-11-12 00:00:00.0, 19,111,光棍类型,2010-11-12 00:00:00.0, 20,112,客户端,2010-11-12 00:00:00.0]}
asdujiayong 2010-11-12
  • 打赏
  • 举报
回复
{"total":8,"terminallist":list}
shuaiyz 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 asdujiayong 的回复:]
引用 6 楼 shuaiyz 的回复:

引用 5 楼 zoujp_xyz 的回复:
后台输出的格式错误,这2个属性也没有。
totalProperty:"total",
root:'terminallist'

这两个属性我是在后台公开的两个属性
Controller中:
private int total;
private List terminallist;
///ge……
[/Quote]
这种格式对吗?
{total:8,terminallist:[{"active_time":{"date":24,"day":3,"hours":0,"minutes":0,"month":10,"nanos":0,"seconds":0,"time":1290528000000,"timezoneOffset":-480,"year":110},"charge_person":"张三","is_active":"0","is_controllable":"0","is_readdable":"1","is_shuttable":"0","terminal_id":"101","terminal_type":"负控终端","terminal_uid":1},{"active_time":{"date":7,"day":0,"hours":0,"minutes":0,"month":10,"nanos":0,"seconds":0,"time":1289059200000,"timezoneOffset":-480,"year":110},"charge_person":"李四","is_active":"0","is_controllable":"0","is_readdable":"0","is_shuttable":"0","terminal_id":"109","terminal_type":"电热能终端","terminal_uid":5},{"active_time":{"date":16,"day":2,"hours":0,"minutes":0,"month":10,"nanos":0,"seconds":0,"time":1289836800000,"timezoneOffset":-480,"year":110},"charge_person":"张三","is_active":"1","is_controllable":"0","is_readdable":"1","is_shuttable":"1","terminal_id":"101","terminal_type":"负控终端","terminal_uid":6},{"active_time
asdujiayong 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 shuaiyz 的回复:]

引用 5 楼 zoujp_xyz 的回复:
后台输出的格式错误,这2个属性也没有。
totalProperty:"total",
root:'terminallist'

这两个属性我是在后台公开的两个属性
Controller中:
private int total;
private List terminallist;
///gett
///sett
这样写可以吗?
[/Quote]
不是这个意思
因为你前台的store 中是用terminallist 来接收后台传过来的数据
所以在返回json数据中 要以{terminallist :返回的数据}的形式返回
而你只是把jsonArrayFromList直接返回了 ,所以store无法解析了
shuaiyz 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 asdujiayong 的回复:]
返回时以json格式
在前台是用terminallist接收数据
1.返回时以json 的形式组装 "{total:" + count + ",terminallist:" + 返回的数据+ "}";
2.看下grid的高度 如果没设也不会显示出来的
[/Quote]
我是这样转换json数据的,那么要怎样组装呢
JSONArray jsonArrayFromList = JSONArray.fromObject(terminallist);
shuaiyz 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 angel21li 的回复:]
检查下你的后台输出是否有
totalProperty:"total",
root:'terminallist'
这两项
[/Quote]
我是在后台设的两个属性,不知道可不可以。。。
shuaiyz 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zoujp_xyz 的回复:]
后台输出的格式错误,这2个属性也没有。
totalProperty:"total",
root:'terminallist'
[/Quote]
这两个属性我是在后台公开的两个属性
Controller中:
private int total;
private List terminallist;
///gett
///sett
这样写可以吗?
zoujp_xyz 2010-11-11
  • 打赏
  • 举报
回复
后台输出的格式错误,这2个属性也没有。
totalProperty:"total",
root:'terminallist'
asdujiayong 2010-11-11
  • 打赏
  • 举报
回复
返回时以json格式
在前台是用terminallist接收数据
1.返回时以json 的形式组装 "{total:" + count + ",terminallist:" + 返回的数据+ "}";
2.看下grid的高度 如果没设也不会显示出来的
angel21li 2010-11-11
  • 打赏
  • 举报
回复
还有你的后台向前台传json字符串
response.getWriter().write(jsonArrayFromList.toString());
angel21li 2010-11-11
  • 打赏
  • 举报
回复
检查下你的后台输出是否有
totalProperty:"total",
root:'terminallist'
这两项
likeajin 2010-11-11
  • 打赏
  • 举报
回复
帮顶~~~~~~~~~~~

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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