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

目录(?)[+]


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

pageNo1

pageSize5


 

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'

});

}

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值