您的位置:首页 > 其它

smartclient--Datasource与服务端交互数据格式

2013-05-04 13:48 357 查看
框架validationservletnullurlfunction

目录(?)[+]

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'

});

}

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: