Flex4之关于VO对象作为参数传递到服务器端能否转换成JAVA对象的问题解决方案...

本文介绍如何在FLEX客户端与JAVA服务器之间正确传递对象。通过添加特定的元数据,可以实现FLEX VO类与JAVA实体类之间的无缝对接,避免类型转换错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,在FLEX开发过程中,给FLEX客户端设计一个VO(value object)类与JAVA中的实体类相对应,估计大家都做过,不过在作为参数传递到后台时,经常会出这样的错误提示

faultCode:Server.ResourceUnavailable faultString:'
Cannot invoke method 'merge'.' faultDetail:
'The expected argument types are (com.card.entity.Users)
 but the supplied types were (flex.messaging.io.amf.ASObject) 
and converted to (null).'

  比如你是这么传递客户端的对象值

public function dodeletes(u:Users):void{
   service.deletes(u);
  }

 服务器端呢,你肯定有对应的

public boolean deletes(Users persistentInstance) {
  if (null != persistentInstance) {
   getSession().delete(persistentInstance);
   return true;
  } else {
   return false;
  }

 }

由于一个是FLEX客户端的VO,一个是JAVA类,所以要转换肯定需要一些设置,关键就是要在VO上加上一些元数据、

package vo
{
	import mx.rpc.remoting.RemoteObject;

	[Bindable]
	[RemoteClass(alias="com.card.entity.Users")]
	public class Users
	{
		public var id:int;
		public var username:String;
		public var email:String;
		public var phonenum:String;
		public var detail:String;
		
	}
}

 

看见了没,
[RemoteClass(alias="com.card.entity.Users")]
这个起了关键作用,设置好了之后就不会出错了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值