Smarclient框架Datasource与服务端交互数据格式
2012-08-21 10:08
429 查看
Datasource与服务端交互数据格式
Datasource和后端交互一律采用json格式。请求格式:
Fetch 自动分页:Request URL:(get)
http://localhost:41088/servlets-examples/AServlet?_operationType=fetch&_startRow=0&_endRow=6&_textMatchStyle=exact&_componentId=countGrid&_dataSource=countryDS&isc_metaDataPrefix=_&isc_dataFormat=json
Request Method:get
Get参数
_operationType:fetch
_startRow:0
_endRow:6
_textMatchStyle:exact
_componentId:countGrid
_dataSource:countryDS
isc_metaDataPrefix:_
isc_dataFormat:json
Request URL:(post)
http://localhost:41088/servlets-examples/AsServlet?isc_dataFormat=json
Request Method:post
Get参数
isc_dataFormat:json
post参数
{ "dataSource":"countryDS",
"operationType":"fetch", "startRow":0, "endRow":5, "textMatchStyle":"exact", "componentId":"countGrid", "data":{ "com_zte_dap_commandcode":"10110" }, "oldValues":null }
手工分页: http://localhost:41088/servlets-examples/AsServlet?pageSize=5&pageNo=1&_operationType=fetch&_startRow=0&_endRow=75&_textMatchStyle=exact&_componentId=countGrid&_dataSource=countryDSManual&isc_metaDataPrefix=_&isc_dataFormat=xml
Request Method:get
Get参数
_operationType:fetch
_startRow:0
_endRow:6
_textMatchStyle:exact
_componentId:countGrid
_dataSource:countryDS
isc_metaDataPrefix:_
isc_dataFormat:json
pageNo:1
pageSize:5
Add
Request URL: (post) http://localhost:41088/servlets-examples/AosServlet?isc_dataFormat=json
Request Method:POST
Get参数:
isc_dataFormat:json
post参数
{ "dataSource":"countryDS", "operationType":"add", "data":{ "id":"99", "name":"zy" }, "oldValues":null }
Update
Request URL(post): http://localhost:41088/servlets-examples/AosServlet?isc_dataFormat=json
Request Method:POST
Get参数:
isc_dataFormat:json
post参数
{ "dataSource":"countryDS", "operationType":"update", "data":{ "id":"99", "zongying":"zy2" }, "oldValues":null }
Remove
Request URL: (post) http://localhost:41088/servlets-examples/AosServlet?isc_dataFormat=json
Request Method:POST
Get参数:
isc_dataFormat:json
post参数
{ "dataSource":"countryDS", "operationType":"remove", "componentId":"countGrid", "data":{ "id":"UK", "zongying":"zy2"
}, "oldValues":null }
响应格式:
正确响应:Fetch
自动分页:
response: {status: '0',startRow:
'0',dRow: '5',totalRows: '10',
data: [{id:
'0',name: 'name0'}, {id: '1',name:
'name1'}, {id: '2',name: 'name2'},
{id: '3',name: 'name3'},
{id: '4',name: 'name4'}, {id:
'5',name: 'name5'
}]}};
手工分页:
response: {status: '0',startRow:
'0',endRow: '5',totalRows: '5',totalPages:'5',realTotalRows:'23',
data: [{id: '0',name:
'name0'}, {id: '1',name: 'name1'},
{id: '2',name: 'name2'}, {id:
'3',name: 'name3'}, {id: '4',name:
'name4'}, {id: '5',name: 'name5'
}]}};
Add,update,remove
response: {status: '0',data:
[{id: '0',name: 'name0'}]]}};
返回一般错误
response: {status: '-1',data:
“error mesdsage”}
返回数据验证错误
{"response": {"endRow":
0,"totalRows": 0,"status": -4,"startRow": 0,"data":
{"errorMessage": "A error on field1"}}}
或者
{response: {status:
-4,errors: {field1: {errorMessage: "A validation
error on field1"},field2: {errorMessage:
"A validation error on field2"}}}}
使用示例
//定义数据源
varcountryDS= isc.RestDataSource.create({
ID:"countryDS",
dataFormat:"json",
//recordXPath:
"//country",
fetchDataURL:"/servlets-examples/AsServlet",
addDataURL:"/servlets-examples/AsServlet",
updateDataURL:"/servlets-examples/AsServlet",
removeDataURL:"/servlets-examples/AsServlet",
selectionAppearance:"checkbox",
operationBindings: [{
operationType:"fetch",
dataProtocol:"getParams"
//dataProtocol:
"postMessage"
}, {
operationType:"add",
dataProtocol:"postMessage"
}, {
operationType:"update",
dataProtocol:"postMessage"
}, {
operationType:"remove",
dataProtocol:"getParams"
}],
fields: {
id: {
name:"id",
title:"Code",
primaryKey:true,
required:true
},
name: {
name:"name",
title:"Country",
canEdit:true
}
},
handleError:function(response,
request){
//如果服务端返回错误
if
(response.status <
0) {
var
errMsg = null;
//-90系统级别错误:找不到服务器(httpResponseCode/
xmlHttpRequest.status :0),或者找不到资源(404)
//-1服务端servlet处理后,返回系统级别错误,不可恢复错误(200)。
//-4服务端servlet处理后,回数据校验错误(200)
switch
(response.status) {
case-90:
errMsg = response.data.data;
break;
case-1:
errMsg = response.data
break;
case-4:
default:
}
//Canvas.getById(request.componentId
).data=null;
isc.warn('自定义错误处理信息:\n'
+ errMsg);
countGrid.data =null;
returnfalse;//是否屏蔽默认错误处理
}
//response.status>=0处理
}
})
//定义数据绑定控件,并且绑定到数据源
var
countGrid = isc.ListGrid.create({
ID:"countGrid",
width: 500,
height: 100,
alternateRecordStyles:true,
dataSource: countryDS,//绑定到数据源
autoFetchData:false,
autoSaveEdits:false,
});
//查询数据
var
actButton = isc.Button.create({
left: 200,
top: 120,
width: 150,
title:"fetch
data",
click:function(){
countGrid.invalidateCache();
countGrid.fetchData({
com_zte_dap_commandcode:'10110'
});
}
});
相关文章推荐
- smartclient--Datasource与服务端交互数据格式
- Android 中通过HTTPRequest 与服务端进行 JSON格式数据交互
- js和servlet之间用json的数据格式进行交互
- ESP-TCP (2/34) --- ESP-IDF 下基于 JSON 格式进行 TCP 数据交互
- json格式数据在前台与后台之间交互实例
- 网络数据交互格式
- 用JSON格式提交数据到服务端
- PHP JSON格式数据交互实例详解
- EXT 中json格式数据后台与前台的交互
- iOS数据交互格式及解析总结
- android菜鸟学习笔记25----与服务器端交互(二)解析服务端返回的json数据及使用一个开源组件请求服务端数据
- 服务端拼接json数据格式的正确写法(Append方式)
- .net WebService(二) 客户端向服务端传入参数的数据交互方式
- 数据格式交互映射协议
- ExtJS fileupload组件上传文件后从服务端解析JSON格式数据
- 使用JSON格式提交数据到服务端的实例代码
- 统一前后台数据交互格式
- 【Android 开发】: Android客户端与服务端之间使用JSON交互数据。
- PHP JSON格式数据交互实例代码详解
- Asp.net MVC 使用json数据格式交互