后台Java类:
public class TranCopayVO {
private Long seqNo;
private Long lineNo;
private String copayDesc;
private Double copayAmt;
public TranCopayVO() {
super();
// TODO Auto-generated constructor stub
}
......
}
Flex AS类:
package vo
{
[Bindable]
[RemoteClass(alias="com.versionsystem.tpa.vo.TranCopayVO")]
public class TranCopayVO
{
public function TranCopayVO()
{
}
public var seqNo:Number;
public var lineNo:Number;
public var copayDesc:String;
public var copayAmt:Number;
}
}
在DataGrid中显示是数据是后台传到前端的,对Flex端而言,DataGrid中的一行数据对应的其实就是TranCopayVO的实例。显示没有问题。
当我把DataGrid中的DataProvider 转换成ArrayCollection 传给后台java 执行时碰到了如下错误:
java.lang.ClassCastException: flex.messaging.io.amf.ASObject cannot be cast to com.versionsystem.tpa.vo.TranCopayVO
解决方法:
在Flex前端声明一下As类:TranCopayVO
如下:var tcv: TranCopayVO;
这样转换就没有问题了。如果在Flex中没有声明TranCopayVO的实例,就会抛出以上异常。需要事先声明它,以便Flex编译器能识别它