EXT读取后台json数据的问题

kehuo 2008-10-30 09:32:29
刚开始接触EXT,可以搞了2天了,一个小小的测试都没有搞出来
大侠们帮忙看看吧 ~~~ 后台能取到数据,可前台怎么都取不到json,页面上能显示出grid框和列 但是没有数据;大家看我的代码可能会发现我的列都是中文的,这是由于我们的项目的原因,我查过资料EXT对中文取值是支持的

我的jsp也是UTF-8的



json的后台打印:{"pageInfo":1,"data":[{"签发人":"","归档":"","登记号":"001","保管期限":"10年","文件标题":"关于什么的测试情况","原文路径":"","份数":"","主题词":"啊","备注":"","正文":"","归档份数":"","处理单":"","密级":"机密","责任者":"啊","拟稿人":"","办结提示":"","分类号":"020","成文日期":"20081009","页数":"1","全宗号":"","缓急程度":"","签发时间":"","拟稿部门":"","主办部门":"","文号":"综[2008]1号","附件":"","登记日期":"20081009"}]}


java(action)的写法:

JSONArray ary = new JSONArray(recodList);
JSONObject jo = new JSONObject();
jo.put("data", ary);
jo.put("pageInfo",recodList.size());
String jstr=jo==null?"":jo.toString();
boolean scriptTag = false;
String cb = request.getParameter("callback");
if (cb != null) {
scriptTag = true;
response.setContentType("text/html;charset=UTF-8");
} else {//"text/html;charset=UTF-8" "text/javascript;charset=UTF-8" "application/x-json;charset=UTF-8"
response.setContentType("text/html;charset=UTF-8");
}
if (scriptTag) {
jstr = cb + "("+jstr+")";
}
System.out.println(jstr);
response.getWriter().print(jstr);


jsp(js代码)


<html>
<head>
<link rel="stylesheet" type="text/css" href="scripts/ext/resources/css/ext-all.css" />
<script type="text/javascript" src="scripts/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="scripts/ext/ext-all.js"></script>
<script type="text/javascript" src="scripts/ext/ext-all-debug.js"></script>
<script type="text/javascript" src="scripts/ext/source/locale/ext-lang-zh_CN.js"></script>
<script type="text/javascript" >
var APP_PATH='/esoaisapp';

Ext.onReady(function(){

function toggleDetails(btn, pressed){
var view = grid.getView();
view.showPreview = pressed;
view.refresh();
}
var ds= new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url: "listPreArchiveEdit.html?content.method=TestGtSearch&contentPath=/preArchive/1@2/1@299/29@332/4@346/3@456/@458"}),
reader: new Ext.data.JsonReader({
totalProperty:"pageInfo",
root:"data",
fields:[
{name:"密级"},
{name:"办结提示"},
{name:"成文日期"},
{name:"附件"},
{name:"责任者"},
{name:"拟稿部门"},
{name:"签发时间"},
{name:"保管期限"},
{name:"登记号"},
{name:"全宗号"},
{name:"登记日期"},
{name:"分类号"},
{name:"主题词"},
{name:"主办部门"},
{name:"份数"},
{name:"归档"},
{name:"拟稿人"},
{name:"签发人"},
{name:"页数"},
{name:"文件标题"},
{name:"原文路径"},
{name:"文号"},
{name:"缓急程度"},
{name:"备注"},
{name:"归档份数"},
{name:"正文"},
{name:"处理单"}
]
})
});
var cbsm=new Ext.grid.CheckboxSelectionModel();
var cm=new Ext.grid.ColumnModel(
[new Ext.grid.RowNumberer(),
cbsm,
{header:"密级",dataIndex:"密级"},
{header:"办结提示",dataIndex:"办结提示"},
{header:"成文日期",dataIndex:"成文日期"},
{header:"附件",dataIndex:"附件"},
{header:"责任者",dataIndex:"责任者"},
{header:"拟稿部门",dataIndex:"拟稿部门"},
{header:"签发时间",dataIndex:"签发时间"},
{header:"保管期限",dataIndex:"保管期限"},
{header:"登记号",dataIndex:"登记号"},
{header:"全宗号",dataIndex:"全宗号"},
{header:"登记日期",dataIndex:"登记日期"},
{header:"分类号",dataIndex:"分类号"},
{header:"主题词",dataIndex:"主题词"},
{header:"主办部门",dataIndex:"主办部门"},
{header:"份数",dataIndex:"份数"},
{header:"归档",dataIndex:"归档"},
{header:"拟稿人",dataIndex:"拟稿人"},
{header:"签发人",dataIndex:"签发人"},
{header:"页数",dataIndex:"页数"},
{header:"文件标题",dataIndex:"文件标题"},
{header:"原文路径",dataIndex:"原文路径"},
{header:"文号",dataIndex:"文号"},
{header:"缓急程度",dataIndex:"缓急程度"},
{header:"备注",dataIndex:"备注"},
{header:"归档份数",dataIndex:"归档份数"},
{header:"正文",dataIndex:"正文"},
{header:"处理单",dataIndex:"处理单"}
]
);
var grid=new Ext.grid.GridPanel({el:"grid",store:ds,cm:cm,sm:cbsm,
width:800,
height:500,
title:"grid",
bbar: new Ext.PagingToolbar({
pageSize: 4,
store: ds,
displayInfo: true,
displayMsg: "Displaying topics {0} - {1} of {2}",
emptyMsg: "No topics to display"
})
});
grid.render();
ds.load({params:{start:0,limited:10}});
});



</script>

</head>
<body style="padding:0px;margin:10px;">

<div id="grid" style="border:0px solid #cccccc;background-color:#f3f3f3;padding:5px;width:100%;" >
</div>

</body>
</html>
...全文
1464 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
我是言希 2012-10-06
  • 打赏
  • 举报
回复
正在学习……
lxychinese 2011-10-19
  • 打赏
  • 举报
回复
来赚分的
sy_binbin 2008-10-31
  • 打赏
  • 举报
回复
最后一招

单独运行下listPreArchiveEdit.html?content.method=TestGtSearch&contentPath=/preArchive/1@2/1@299/29@332/4@346/3@456/@458

看看能不能运行!

要是还不行,我也真的不知道了!
kehuo 2008-10-31
  • 打赏
  • 举报
回复
JSON格式完全正确,这个可以肯定的
sy_binbin 2008-10-31
  • 打赏
  • 举报
回复
你再好好检查下JSON的格式,看看逗号什么的都对不!

sy_binbin 2008-10-31
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 kehuo 的回复:]
你一般是用什么数据类型 json ?xml ?dwr?
[/Quote]

grid最简单的才看,通过JSON的还没弄呢!最近比较懒!不爱学!呵呵
kehuo 2008-10-31
  • 打赏
  • 举报
回复
你一般是用什么数据类型 json ?xml ?dwr?
sy_binbin 2008-10-31
  • 打赏
  • 举报
回复


那偶也不清楚了!

EXT我也才开始弄!呵呵
kehuo 2008-10-31
  • 打赏
  • 举报
回复
可以的
sy_binbin 2008-10-31
  • 打赏
  • 举报
回复
我也看出来顺序是不一样了!
我的意思和顺序有关系吗,JSON的和顺序和reader: new Ext.data.JsonReader这里的顺序可以不一样吗??

kehuo 2008-10-31
  • 打赏
  • 举报
回复
和json的顺序不一样
sy_binbin 2008-10-31
  • 打赏
  • 举报
回复
{name:"密级"},
{name:"办结提示"},
{name:"成文日期"},

这个和JSON里的顺序有关系吗??

kehuo 2008-10-31
  • 打赏
  • 举报
回复
不行啊 改成下面的 数据还是出不来 还有 我觉得不写mapping 和type 应该是可以的吧


 {name:'密级',mapping:'密级',type:'string'}, 
{name:'办结提示',mapping:'办结提示',type:'string'},
{name:'成文日期',mapping:'成文日期',type:'string'},
{name:'附件',mapping:'附件',type:'string'},
{name:'责任者',mapping:'责任者',type:'string'},
{name:'拟稿部门',mapping:'拟稿部门',type:'string'},




sy_binbin 2008-10-31
  • 打赏
  • 举报
回复
{name: 'id',mapping:'id',type:'int'},
{name: 'name',mapping:'name',type:'string'},
{name: 'descn',mapping:'descn',type:'string'}
kehuo 2008-10-31
  • 打赏
  • 举报
回复
改了 还是一样 郁闷了



var ds= new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url: "listPreArchiveEdit.html?content.method=TestGtSearch&contentPath=/preArchive/1@2/1@299/29@332/4@346/3@456/@458"}),
reader: new Ext.data.JsonReader({
totalProperty:"pageInfo",
root:"data",
successProperty :"success"},
[

{name:"密级"},

{name:"办结提示"},

{name:"成文日期"},

{name:"附件"},

{name:"责任者"},

{name:"拟稿部门"},

{name:"签发时间"},

{name:"保管期限"},

{name:"登记号"},

{name:"全宗号"},

{name:"登记日期"},

{name:"分类号"},

{name:"主题词"},

{name:"主办部门"},

{name:"份数"},

{name:"归档"},

{name:"拟稿人"},

{name:"签发人"},

{name:"页数"},

{name:"文件标题"},

{name:"原文路径"},

{name:"文号"},

{name:"缓急程度"},

{name:"备注"},

{name:"归档份数"},

{name:"正文"},

{name:"处理单"}

])
});


sy_binbin 2008-10-31
  • 打赏
  • 举报
回复
//proxy直接去读取josn数据
var ds = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url:'gridjson.jsp'}),
reader: new Ext.data.JsonReader({
totalProperty: 'totalProperty',
root: 'root',
successProperty :'success'
}, [
{name: 'id',mapping:'id',type:'int'},
{name: 'name',mapping:'name',type:'string'},
{name: 'descn',mapping:'descn',type:'string'}
])
});

这个是例子里的代码

var ds= new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url: "listPreArchiveEdit.html?content.method=TestGtSearch&contentPath=/preArchive/1@2/1@299/29@332/4@346/3@456/@458"}),
reader: new Ext.data.JsonReader({
totalProperty:"pageInfo",
root:"data",
fields:[
{name:"密级"},
{name:"办结提示"},
{name:"成文日期"},
{name:"附件"},
{name:"责任者"},
{name:"拟稿部门"},
{name:"签发时间"},
{name:"保管期限"},
{name:"登记号"},
{name:"全宗号"},
{name:"登记日期"},
{name:"分类号"},
{name:"主题词"},
{name:"主办部门"},
{name:"份数"},
{name:"归档"},
{name:"拟稿人"},
{name:"签发人"},
{name:"页数"},
{name:"文件标题"},
{name:"原文路径"},
{name:"文号"},
{name:"缓急程度"},
{name:"备注"},
{name:"归档份数"},
{name:"正文"},
{name:"处理单"}
]
})
});
这个是你的代码

不太一样哦!你改成例子里的那样的试试
kehuo 2008-10-31
  • 打赏
  • 举报
回复
楼上的 我的和这样的差不多啊 没看出来有什么问题啊

response显示的json也是正确的
sy_binbin 2008-10-31
  • 打赏
  • 举报
回复
http://www.cnblogs.com/huazi4995/articles/1245138.html

参考下这个呢
kehuo 2008-10-31
  • 打赏
  • 举报
回复
帮帮忙吧 快疯了
kehuo 2008-10-31
  • 打赏
  • 举报
回复
原因找到了 我们用了sitemath 来修饰页面 它会修改response的内容 将sitemath对此页面的修饰去掉就可以了
非常感谢
加载更多回复(2)

52,797

社区成员

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

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