您的位置:首页 > 编程语言 > Java开发

flex 与java交互问题总结

2012-08-31 17:00 351 查看
flex 与java交互是不可以使用构造函数去初始化java类的,即不可以使用函数直接初始化(如用户名、密码),因为flex new java类的时候是只实例化一次,也属于线程不安全的。

建议每次请求时必要传递该值

我的测试环境flex 4.6-spring

以下是测试代码:

Test.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<s:RemoteObject id="foo" destination="foo" endpoint="http://localhost:8080/csmp/messagebroker/amf"
fault="faultHandler(event)" showBusyCursor="true" />
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import com.gzhdi.flexcsmp.riawave.ModelLocator;
import com.gzhdi.flexcsmp.riawave.MyEvent;

import mx.controls.Alert;
import mx.events.FlexEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.Responder;
public var tenant_name:String;
protected function faultHandler(event:FaultEvent):void
{
Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail, "出错了");
}

protected function button1_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
foo.init("yinlei","100");
}

protected function button2_clickHandler(event:MouseEvent):void
{
foo.getName().addResponder(new mx.rpc.Responder(function(event:ResultEvent):void
{
Alert.show(event.result as String,"Name");
},faultHandler));
}

protected function button3_clickHandler(event:MouseEvent):void
{
foo.getAge().addResponder(new mx.rpc.Responder(function(event:ResultEvent):void
{
Alert.show(event.result as String,"Age");
},faultHandler));

}
]]>
</fx:Script>
<s:Button x="106" y="82" label="初始化" click="button1_clickHandler(event)"/>
<s:Button x="106" y="123" label="getName()" click="button2_clickHandler(event)"/>
<s:Button x="106" y="152" label="getAge()" click="button3_clickHandler(event)"/>
</s:Application>


JAVA:

package com.gzhdi.csmp.service;

import org.apache.log4j.Logger;
import org.springframework.flex.remoting.RemotingDestination;
import org.springframework.stereotype.Service;

@Service
@RemotingDestination
public class Foo
{
private static final Logger log = Logger.getLogger(Foo.class);

String name="failure";

String age="500";

public void init(String name, String age)
{
this.name=name;
this.age=age;
System.out.println(this.name+"---"+this.age);
}
public String getName()
{
System.out.println("getName:"+name);
return name;
}

public void setName(String name)
{
this.name = name;
}

public String getAge()
{
System.out.println("getAge:"+age);
return age;
}

public void setAge(String age)
{
this.age = age;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: