flex webservice java,Flex 数据访问 WebService 使用参数(下)

本文详细介绍了如何在Flex中使用不同类型的参数调用WebService,包括简单类型、简单对象、对象数组和复杂对象。通过实例展示了Flex前端代码与.NET后台WebMethod的交互,展示了参数传递的具体方法和运行结果。
摘要由CSDN通过智能技术生成

上一篇介绍Flex的WebService的使用,可以调用多种类型的数据,都是直接调用,没有使用参数,本篇学习使用参数调用WebService,WebService的参数类型可以是:简单类型(如数值,字串串等),简单实体模型(只有属性),比较复杂的实体模型(内陷其他实体),以及集合,XML等。

Flex在调用不同后台实现的Web Method方式只是在构造参数有些区别,调用方式是一样的,以下简单介绍Flex调用.NET的Web Method使用不同参数。

定义Web Method用到的类:

[Serializable]publicclassEmployee

{publicintid {get;set; }publicstringname {get;set; }publicintage {get;set; }

}

[Serializable]publicclassDept

{publicintDeptID{get;set; }publicstringDeptName {get;set; }publicEmployee[] Employees {get;set; }

}

一、简单类型参数

Web Method定义:

[WebMethod]publicEmployee GetEmployee(intid)

{returnnewEmployee

{

id=id,

name="Employee"+id,

age=25};

}

Flex可以直接定义operation的时候定义requests:

<?xml version="1.0" encoding="utf-8"?>

import mx.rpc.events.FaultEvent;

import mx.rpc.events.ResultEvent;

import mx.controls.Alert;

private function onResult(event:ResultEvent):void

{

var msg:String="ID:"+event.result.id+"\n"+

"Name:"+event.result.name+"\n"+

"Age:"+event.result.age;

Alert.show(msg);

}

private function onFault(event:FaultEvent):void

{

Alert.show("Error:"+event.message);

}

private function GetEmployee():void

{

MyService.GetEmployee.send();

}]]>

1

运行结果:

4d89776799cead2ee188967b0c385138.png

二、简单对象

Web Method定义,模拟添加对象,Flex前端代码,参数名跟Web Method的参数名一样。

[WebMethod]publicintAddEmployee(Employee employee)

{return1;

}

运行结果:

e2dcb17ac5870900a09ce6b7b5781e07.png

跟踪Web Method的employee参数:

f6174edb60e0aafe820433879a7b650b.png

三、对象数组

Web Method定义,添加多个对象:

[WebMethod]publicintAddEmployees(Employee[] list)

{returnlist.Length;

}

Flex前端代码:

<?xml version="1.0" encoding="utf-8"?>

import mx.rpc.events.FaultEvent;

import mx.rpc.events.ResultEvent;

import mx.controls.Alert;

private function onResult(event:ResultEvent):void

{

Alert.show(event.result.toString());

}

private function onFault(event:FaultEvent):void

{

Alert.show("Error:"+event.message);

}

private function AddEmployee():void

{

var empArr:Array=new Array();

empArr.push({id:0,name:"user1",age:22});

empArr.push({id:0,name:"user2",age:23});

empArr.push({id:0,name:"user3",age:25});

MyService.AddEmployees(empArr);

}]]>

运行结果: 76fd455b641ee5262f81b7a5def23df0.png

四、复杂对象

Web Method定义:

[WebMethod]publicintAddDept(Dept dept)

{return1;

}

Flex前端代码:

<?xml version="1.0" encoding="utf-8"?>

import mx.rpc.events.FaultEvent;

import mx.rpc.events.ResultEvent;

import mx.controls.Alert;

private function onResult(event:ResultEvent):void

{

Alert.show(event.result.toString());

}

private function onFault(event:FaultEvent):void

{

Alert.show("Error:+event.message);

}

private function AddDept():void

{

var empArr:Array=new Array();

empArr.push({id:0,name:"user1",age:22});

empArr.push({id:0,name:"user2",age:23});

empArr.push({id:0,name:"user3",age:25});

var dept:Object=new Object();

dept.DeptID=1;

dept.DeptName="dept1";

dept.Employees=empArr;

MyService.AddDept(dept);

}]]>

运行结果:

442088c1f78469e2daf5ab1261c9e0f7.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值