加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex + Hessian 学习笔记(二)

发布时间:2020-12-15 04:29:01 所属栏目:百科 来源:网络整理
导读:这个例子是,输入一个用户信息,并保存到服务端。 第一个目的是实验一下传送对象; 再一个目的是感觉Hessian例子里的用法不太舒服,又要实现mx.rpc.IResponder,又要处理AsyncToken,还要send,所以把这些封装了一下,由BaseService实现mx.rpc.IResponder,

这个例子是,输入一个用户信息,并保存到服务端。
第一个目的是实验一下传送对象;
再一个目的是感觉Hessian例子里的用法不太舒服,又要实现mx.rpc.IResponder,又要处理AsyncToken,还要send,所以把这些封装了一下,由BaseService实现mx.rpc.IResponder,由UserService类开放服务接口(既提供java端UserService的方法),这样其它类就可以像使用普通对象一样使用UserService类。

java 代码
  1. public?class?UserBean?implements?Serializable?{ ??
  2. ??
  3. ????private?Integer?userId; ??
  4. ???? ??
  5. private?String?userName; ??
  6. private?String?password; ??
  7. private?String?companyName; ??
  8. ????getter?setter?... ??
  9. }??
java 代码
    interface?UserService?{ ??
  1. ??
  2. public?String?getUserName(Integer?userId); ??
  3. ???? ??
  4. public?List<UserBean>?saveUser(UserBean?userBean); ??
  5. }??
java 代码
    class?UserServiceImpl?extends?HessianServlet?implements?UserService?{ ??
  1. ??
  2. private?static?List<UserBean>?userDataSource?=?new?ArrayList<UserBean>(); ??
  3. ???? ??
  4. public?String?getUserName(Integer?userId)?{ ??
  5. ????????return?"MyName"?+?userId; ??
  6. ????} ??
  7. public?List<UserBean>?saveUser(UserBean?userBean)?{ ??
  8. ????????userBean.setUserId(userDataSource.size()?+?1); ??
  9. ????????userDataSource.add(userBean); ??
  10. return?userDataSource; ??
  11. }??
xml 代码
    <servlet>??
  1. ????<servlet-name>userService</servlet-name>??
  2. ????<servlet-class>myhessian.service.UserServiceImpl</servlet-class>??
  3. </servlet>??
  4. ??
  5. <servlet-mapping>??
  6. ????<servlet-name>userService</servlet-name>??
  7. ????<url-pattern>/userService</url-pattern>??
  8. </servlet-mapping>??

以上是服务端的java代码,下面是flex的代码

as3 代码
    class?UserBean?{ ??
  1. ???? ??
  2. public?var?userId?:?int; ??
  3. public?var?userName?:?String; ??
  4. public?var?password?:?String; ??
  5. public?var?companyName?:?String; ??
  6. }??
as3 代码
    class?BaseService?implements?IResponder?{ ??
  1. ???? ??
  2. protected?var?resultCallbackFunction?:?Function; ??
  3. protected?var?faultCallbackFunction?:?Function; ??
  4. public?function?BaseService(resultCallback:Function=null,?faultCallback:Function=null)?{ ??
  5. if?(resultCallback?==?null)?{ ??
  6. ????????????resultCallbackFunction?=?defaultFunction; ??
  7. ????????}?else?{ ??
  8. ????????????resultCallbackFunction?=?resultCallback; ??
  9. ????????} ??
  10. if?(faultCallback?==? ????????????faultCallbackFunction?=?defaultFunction; ??
  11. else?{ ??
  12. ????????????faultCallbackFunction?=?faultCallback; ??
  13. ????????} ??
  14. ????} ??
  15. ???? ??
  16. public?function?result(data:Object):void?{ ??
  17. ????????var?event:ResultEvent?=?data?as?ResultEvent; ??
  18. ????????resultCallbackFunction(event.result); ??
  19. ????} ??
  20. public?function?fault(data:Object):void?{ ??
  21. ????????var?event:ResultEvent?=?data?as?ResultEvent; ??
  22. ????????faultCallbackFunction(event.result); ??
  23. public?function?defaultFunction(data:Object): }??
as3 代码
    class?UserService?extends?BaseService?{ ??
  1. ???? ??
  2. static?var?_userService?:?HessianService; ??
  3. protected?static?function?getUserService():HessianService?{ ??
  4. if?(!_userService)?{ ??
  5. ????????????_userService?=?new?HessianService("userService"); ??
  6. ????????} ??
  7. return?_userService; ??
  8. ????} ??
  9. ???? ??
  10. public?function?UserService(resultCallback:Function=null)?{ ??
  11. super(resultCallback,?faultCallback); ??
  12. public?function?getUserName(userId:int):void?{ ??
  13. ????????var?token:AsyncToken?=?getUserService().getUserName.send(userId); ??
  14. ????????token.addResponder(this); ??
  15. ????} ??
  16. public?function?saveUser(user?:?UserBean):void?{ ??
  17. ????????var?token:AsyncToken?=?getUserService().saveUser.send(user); ??
  18. this); ??
  19. }??
xml 代码
    <mx:Application? ??
  1. ????xmlns:mx="http://www.adobe.com/2006/mxml"? ??
  2. ????layout="absolute"?>??
  3. ??
  4. ????<mx:Script>??
  5. ????????[CDATA[??
  6. ????????????import?hessian.service.UserService;??
  7. ????????????import?hessian.bean.UserBean;??
  8. ??????????????
  9. ????????????public?function?refreshUserDataGrid(data:Object):void?{??
  10. ????????????????//只能as?Array,不能as?ArrayCollection??
  11. ????????????????userDataGrid.dataProvider?=?data?as?Array;??
  12. ????????????}??
  13. ??????????????
  14. ????????????public?function?onClick():void?{??
  15. ????????????????var?user?:?UserBean?=?new?UserBean();??
  16. ????????????????user.userName?=?nameInput.text;??
  17. ????????????????user.password?=?passwordInput.text;??
  18. ????????????????user.companyName?=?companyInput.text;??
  19. ??????????????????
  20. ????????????????var?userService?:?UserService?=?new?UserService(refreshUserDataGrid);??
  21. ????????????????userService.saveUser(user);??
  22. ????????]]??
  23. ????</mx:Script>??
  24. ????<mx:Label?x="10"?y="10"?text="Name"?width="59"/>??
  25. ????<mx:TextInput?x="77"?y="8"?id="nameInput"/>??
  26. ????<mx:Label?x="10"?y="36"?text="Password"/>??
  27. ????<mx:Label?x="10"?y="62"?text="Company"/>??
  28. ????<mx:TextInput?x="77"?y="34"?id="passwordInput"/>??
  29. ????<mx:TextInput?x="77"?y="60"?id="companyInput"/>??
  30. ????<mx:Button?x="77"?y="90"?label="Button"?click="onClick()"/>??
  31. ????<mx:DataGrid?x="10"?y="120"?width="271"?id="userDataGrid">??
  32. ????????<mx:columns>??
  33. ????????????<mx:DataGridColumn?headerText="ID"?dataField="userId"/>??
  34. ????????????<mx:DataGridColumn?headerText="Name"?dataField="userName"/>??
  35. ????????????<mx:DataGridColumn?headerText="Company"?dataField="companyName"/>??
  36. ????????</mx:columns>??
  37. ????</mx:DataGrid>??
  38. ???? ??
  39. </mx:Application>??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读