gpt4 book ai didi

java - BlazeDS 如何处理 Java Bean 类中的 Map?

转载 作者:太空宇宙 更新时间:2023-11-04 08:08:50 26 4
gpt4 key购买 nike

//Flex类

package com.mycompany{
import flash.utils.Dictionary;

[Bindable]
[RemoteClass(alias="com.mycompany.bean.MessageBundle")]

[Bindable]
public class MessageBundleVO{
public var messages:Object ;

public function getMessage(key:String):String{
return messages.key as String;
}
}
}

//Java类

package com.mycompany.bean;

import java.io.Serializable;
import java.util.Map;

public class MessageBundle implements Serializable {
private static final long serialVersionUID = 1L;
private Map messages;

public Map getMessageBundle() {
return messages;
}

public void setMessageBundle(Map messageBundle) {
this.messages = messageBundle;
}

public String toString(){
return messages.toString();
}
}

一切都正确链接,MessageBundleVO 的实例不为 null,但其属性 messages 为 null。

如果我们使用上面代码中给出的 RemoteClass 标签,您能告诉我 Map 的 Flex 等价物是什么吗?

这在 Flex 侧为空。 MessageBundleVO.messages

    The Aodbe
http://livedocs.adobe.com/flex/3/html/help.html?content=data_access_4.html

is suggesting
Array (sparse)—->java.util.Map–>java.util.Map

最佳答案

这里有很多东西:

  • 变量名称:BlazeDS 使用公共(public)字段和公共(public)访问器作为序列化变量名称。所以从flex的角度来看,MessageBundle java类只包含一个名为“messageBundle”的映射,而没有任何名为“messages”的内容
  • 它将被转换为对象,所以这样就可以了
  • 在您的 getMessage 函数客户端中,我认为该函数不会执行您认为它会执行的操作:)。在当前版本中,它将获取名为“key”的属性。为了达到您的需要,您应该将“messages.key”替换为“messages[key]”
  • 您不需要拥有 2 倍的 [Bindable] 元数据

关于java - BlazeDS 如何处理 Java Bean 类中的 Map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11608921/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com