Ext接受Struts2数据问题(具体怎么接收呢)
发布网友
发布时间:2022-04-25 22:26
我来回答
共1个回答
热心网友
时间:2022-04-25 23:56
直接用JsonReader..
首先用HttpProxy 请求,读取数据,然后用JsonReader 解析成Record记录。。。
再封装到Store里面。。
如果不用到配置文件里面的json配置。那就在后台直接返回json格式回去。
比如
public void queryAllSupplier(){
try{
String supplierName = ServletActionContext.getRequest().getParameter("supplierName");
List<TSupplier> supplierList = this.supplierService.selectSupplierInfo(supplierName);
int totalCount = supplierList.size();
String supplierJson = JsonUtil.list2json(supplierList); //将集合数据转成Json格式数据
String supJson = "{totalProperty:"+totalCount+",root:"+supplierJson+"}";
OutPrint.print(supJson); //将json格式输出到前台
OutPrint.print("{success:true}");
}catch(Exception ex){
ex.printStackTrace();
OutPrint.print(false);
}
}
然后再前台进行接收。。
var httpProxy = new Ext.data.HttpProxy({
url : "supplier_queryAllSupplier.action"
});
var supplierRecord = new Ext.data.Record.create([{
name : "supid",
mapping : "supid",
type : "int"
}, {
name : "supplierName",
mapping : "supname",
type : "string"
}, {
name : "principal",
mapping : "principal",
type : "string"
}, {
name : "identityID",
mapping : "businesslicencescode"
}, {
name : "tellphone",
mapping : "tep",
type : "string"
}, {
name : "supplierAddress",
mapping : "address",
type : "string"
}, {
name : "linkman",
mapping : "linkman",
type : "string"
}, {
name : "postcode",
mapping : "zip",
type : "string"
}, {
name : "email",
mapping : "email",
type : "string"
}, {
name : "createData",
mapping : "createtiem",
type : "string"
}, {
name : "isAvailable",
mapping : "isdel",
type : "string"
}, {
name : "remark",
mapping : "remark",
type : "string"
},{
name:"faxcode",
mapping:"faxcode",
type:"string"
}]);
// 读取数据,将数据转换成record记录
var reader = new Ext.data.JsonReader({
totalProperty : "totalProperty", // 总记录数
root : "root" // 所有的数据(json对象数组)
}, supplierRecord); //数据对象
var store = new Ext.data.Store({
proxy : httpProxy,
reader : reader,
autoLoad:true
});
store.load({
// 分页参数,每页显示10条数据
params : {
start : 0,
limit : 10
}
})