我想通过store到后台取数据,返回json串为(字符串),前台如何接收啊???
以下为store进入后台代码 var store = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({
url : basePath
+ 'portal.do?key=add&type=view'
}),
reader : new Ext.data.JsonReader({
root : 'root',
totalProperty : 'results',
id : 'id',
fields : ['id', 'name', 'url', 'imageSrc', 'source', 'init',
'flag']
})
});
...... store.load({
params : {
start : 0,
limit : 15,
portalId : portalId
}
});
var dataView = new Ext.DataView({
store : store,
tpl : tpl,
loadingText : '正在加载...',
style : 'overflow:auto',
itemSelector : 'div-column',
multiSelect : true,
autoHeight : true
});
在后台如何放置数据然后放到json中,前台好取啊?最好能有相关例子或代码参考!!!!!!!!!!!!!!!!!!!!!
以下为store进入后台代码 var store = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({
url : basePath
+ 'portal.do?key=add&type=view'
}),
reader : new Ext.data.JsonReader({
root : 'root',
totalProperty : 'results',
id : 'id',
fields : ['id', 'name', 'url', 'imageSrc', 'source', 'init',
'flag']
})
});
...... store.load({
params : {
start : 0,
limit : 15,
portalId : portalId
}
});
var dataView = new Ext.DataView({
store : store,
tpl : tpl,
loadingText : '正在加载...',
style : 'overflow:auto',
itemSelector : 'div-column',
multiSelect : true,
autoHeight : true
});
在后台如何放置数据然后放到json中,前台好取啊?最好能有相关例子或代码参考!!!!!!!!!!!!!!!!!!!!!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css" />
<script type="text/javascript" src="extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="extjs/ext-all.js"></script>
<script>
Ext.onReady(function(){
var store = new Ext.data.Store({
autoLoad:true,
remoteSort: true,
proxy: new Ext.data.HttpProxy({
url : basePath + 'portal.do?key=add&type=view
}),
reader: new Ext.data.JsonReader({
totalProperty: "totalProperty",
root: "results"
},['id', 'name', 'url', 'imageSrc', 'source', 'init', 'flag'
])
});
var tpl = new Ext.XTemplate(
'<tpl for=".">',
'<div id="{id}">{name}</div>',
'<div><a href="{url}"><img src="{imageSrc}"></a></div>',
'<span>{source}{init}{flag}</span>',
'</tpl>',
'<div></div>'
);
var portalId = 1
store.load({params : { start : 0, limit : 15, portalId : portalId}});
var dataView = new Ext.DataView({
renderTo:'pad',
store : store,
tpl : tpl,
loadingText : '正在加载...',
style : 'overflow:auto',
itemSelector : 'div-column',
multiSelect : true,
autoHeight : true
}); });
</script>
<div id="pad"></div>portal.do
必须只返回以下字符,不能包含其他HTML标签{totalProperty:2,
results:[
{
id:1,
name:'name1',
url:'url1',
imageSrc:'imageSrc1',
source:'source1',
init:'init1',
flag:'flag1'
},
{
id:2,
name:'name2',
url:'url2',
imageSrc:'imageSrc2',
source:'source2',
init:'init2',
flag:'flag2'
}
]
}
throws Exception {
String key= request.getParameter("key");
//....这里进行你的sql语句,查询数据,将数据结果保存在Resultset rs中
StringBuilder json = new StringBuilder();
json.append("{total:").append(count).append(",root:[");
while (crs.next()) {
json.append("{ID:'").append(crs.getInt("ID"))
.append("',RNAME:'").append(crs.getString("RNAME"))
.append(rs.isLast() ? "'}]}" : "'},");
}
OutputStreamWriter writer = new OutputStreamWriter(out, "utf-8");
writer.write(json );
}实际上就是后台自己拼接String字符串,但是现在好多都是使用的JSON包..可以直接使用封装好的方法
我返回的的是个json字符串,可是还是不行。
返回值如下:
{data:[{id:'NO.3',name:'我的博客',flag:true},{id:'NO.2',name:'博客分类',flag:true},{id:'NO.1',name:'Google添加的广告',flag:true}]}
还望各位指教
reader : new Ext.data.JsonReader({
root : 'root',
totalProperty : 'results',
{results:3,root:[{id:'NO.3',name:'我的博客',flag:true},{id:'NO.2',name:'博客分类',flag:true},{id:'NO.1',name:'Google添加的广告',flag:true}]} 在你封装JSONS的时候,应该是这样数据返回!