smartclient--Datasource与服务端交互数据格式
2013-05-04 13:48
357 查看
框架validationservletnullurlfunction
目录(?)[+]
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'
});
}
});
目录(?)[+]
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'
});
}
});
相关文章推荐
- Smarclient框架Datasource与服务端交互数据格式
- Android 中通过HTTPRequest 与服务端进行 JSON格式数据交互
- 如果希望给Android客户端提供JSON格式的数据,服务端应该用什么技术编写呢?
- 通过Json格式将数据传给服务端
- 【机房收费系统】VB与grid++report交互(如何让数据以报表格式显示)
- Android客户端采用Http 协议Post方式请求与服务端进行数据交互
- Ext4核心组件Grid的变化及学习(4):grid与服务端使用direct进行数据交互
- Android初级开发(九)——网络交互—解析JSON格式数据
- 服务端拼接json数据格式的正确写法(Append方式)
- Android学习笔记:在Android平台上通过JSON格式与服务器端进行数据交互
- 客户端传递json格式数据,spring mvc服务端接受并进行参数校验
- Ext4核心组件Grid的变化及学习(4):grid与服务端使用direct进行数据交互
- 在ssm框架中前后台数据交互均使用json格式
- js与php之间使用json格式进行数据交互
- node.js与ajax交互之 json 与 jsonp 数据格式问题
- AMF3Connection类-使用AMF3数据格式来请求服务端数据
- 客户端封装数据为json格式的数据提交到服务端的方法
- 实践Android客户端与服务端之间使用JSON交互数据。
- 数据格式交互映射协议
- IOS 客户端与服务端之间数据交互框架