1

//弹性类

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 的实例不为空,但其属性消息为空。

如果我们在上面的代码中使用 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
4

1 回答 1

1

这里有很多东西:

  • 变量名:BlazeDS 使用公共字段和公共访问器作为序列化变量名。所以从 flex 的角度来看,MessageBundle java 类只包含一个名为“messageBundle”的映射,而没有一个名为“messages”的映射
  • 它将被转换为一个对象,所以这没关系
  • 在您的 getMessage 函数客户端,我认为该函数不会做您认为它会做的事情:)。在当前版本中,它将获取名为“key”的属性。为了实现您的需要,您应该将“messages.key”替换为“messages[key]”
  • 您不需要 2 倍的 [Bindable] 元数据
于 2012-07-23T13:07:44.333 回答