文档库 最新最全的文档下载
当前位置:文档库 › Flex前端与Java服务端交互

Flex前端与Java服务端交互

Flex前端与Java服务端交互
Flex前端与Java服务端交互

Flex前端与Java服务端交互反射机制

Flex作为RIA的一支,提供了非常丰富多彩的客户端实现,并且编写起来非常灵活.Java 提供了强大的功能实现,与Flex结合也让Java开发穿上了华丽外衣.

BlazeDS 是LCDS的一个衍生版,为Flex和Java的交互提供通信桥梁 .BlazeDS起到的作用并没有多么难理解,和SSH框架内部机制类似的是,都是提供了一种反射服务.比如,在Spring中我们使用IoC特性,这些都是依靠的Java底层的反射机制.

简单说Flex / BlazeDS /Java ,三者之间,BlazeDS提供一种映射,使得Flex前端编码能够使用服务端的Java类.

remoting-config.xml文件:

1

2

3

4

5 class="flex.messaging.services.RemotingService">

6

7

8

9

10

11

12

13

default="true"/>

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31https://www.wendangku.net/doc/6e4519121.html,erService

32

33

34

35

36

37

38

39

40

41

在Flex前端,通过使用Flex提供的RemoteObject关键字,来获取映射中的Java对象,(关于Flex内部的一些有意思的机制,还是要好好细心学习的,这方面了解不多,就不卖弄了.)

42

43

44

result="processResult(event)"

45

46 id="us" fault="Alert.show(event.fault.message.toString())"

47

48 endpoint="http://localhost:8080/BlazeDS_Java_Flex/messagebroker/amf">

49

50

51

52

53

54

现在,我们的Flex前端就已经能够调用服务端的Java方法了.

在最初接触Flex与Java交互时,都是需要做一个传参示例.主要是传自定义类型参数(user:Users)和普通数据类型参数(str:String).

这里,大家要注意,我们自定义类型(Java类) ,要在Flex端进行OO编程,需要拆箱装箱,那么就需要Flex端能够识别Java类,这里就要提到Flex内部的一种映射机制.

创建一个ActionScript类,如下

55package com.flex.vo

56{

57 [Bindable]

58 [RemoteClass(alias="https://www.wendangku.net/doc/6e4519121.html,ers")]

59public class Users

60 {

61 //注意,需要写好构造函数

62public function Users()

63 {

64 }

65

66private var _name:String;

67private var _password:String;

68

69public function get name():String

70 {

71return _name;

72 }

73

74public function set name(value:String):void

75 {

76 _name = value;

77 }

78

79public function get password():String

80 {

81return _password;

82 }

83

84public function set password(value:String):void

85 {

86 _password = value;

87 }

88

89 }

90

91}

这样经过Flex的内部映射,在Java端和Flex端,我们有了对应的一个实体类Users类,那么我们就可以OO编程,在Flex前端,使用AS的实体类进行装箱,然后做参传递给Java类,这样就能够完成了二者之间的自定义数据类型参数的传递.

框架应用都是浮云,底层提供的反射机制是王道啊.

不管你信不信,反正我是信了.

相关文档