<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.utils.ObjectUtil;
import mx.rpc.http.HTTPService;
public function getLoginParameters():Object {
return {
"user.login": loginField.text,
"user.password" : passwordField.text
};
}
public function enviarDados(): void {
userRequest.send( this.getLoginParameters() );
}
public function onSuccess(event:ResultEvent):void {
Alert.show( XML(event.result) );
//cria String baseado no resultado
var rawData:String = String(event.result);
Alert.show( rawData );
}
public function onError(event:FaultEvent):void {
Alert.show(ObjectUtil.toString(event.fault));
}
]]>
</mx:Script>
<mx:HTTPService id="userRequest"
url="http://localhost:8080/mentawai_teste/FlexAction.loginXML.mtw"
result="onSuccess(event)"
fault="onError(event)"
resultFormat="e4x"
method="POST"/>
<mx:Panel width="300" height="154" layout="absolute" horizontalCenter="0" verticalCenter="11" title="Login">
<mx:Form width="100%" height="100" x="0" y="0">
<mx:FormItem label="Login">
<mx:TextInput id="loginField"/>
</mx:FormItem>
<mx:FormItem label="Password">
<mx:TextInput id="passwordField"/>
</mx:FormItem>
</mx:Form>
<mx:Button y="84" label="OK" horizontalCenter="0" id="sendBtn" click="enviarDados()"/>
<mx:Label x="10" y="96" text="{loginField.text}" enabled="false"/>
<mx:Label x="174" y="96" text="?" enabled="false"/>
</mx:Panel>
</mx:Application>
Observe: a function getLoginParameters():Object, aqui está a questão, o formato que finalmente funcionou para envio dos parametros de forma que chegassem corretamente no servidor, sem nenhum erro inesperado...
onde a comunicação com o servidor é efetuada através do componente : mx:HTTPService, sendo que neste caso utilizei retorno em XML como resultado da execução da action
---
quanto a aplicação em java eu tenho na minha classe action o respectivo atributo setado na classe:
private UserBean user;
onde a estrutura dessa classe é:
public class UserBean {
private String login;
private String password;
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
bom fica ae a dica para conseguir enviar parametros do Flex para sua aplicação em java ;)