1

mxml ファイルをサーブレットにリダイレクトし、コードをサーブレットに出力したいのですが、navigate to url コードを使用すると、出力にサーブレット ページの textinput フィールドのnull値が表示されます。mxml とサーブレットの基本的なコーディングの問題を明確にするのを手伝ってください。以下に与えられる

MXML ファイル

<s:Application...>
<fx:Script>
<![CDATA[
  import flash.net.navigateToURL;
  import mx.controls.*;
  import mx.events.Request;
  import mx.rpc.events.FaultEvent;
  import mx.rpc.events.ResultEvent;

  public function resultHandler(event : ResultEvent):void
  {             
    navigateToURL(new URLRequest('Srvlt'),'_self')
  }
  public function faultHandler(event : FaultEvent):void
  {
    Alert.show("error");
  }
]]>
</fx:Script>

<fx:Declarations>
  <s:HTTPService id="service" url="Srvlt" result="resultHandler(event)" fault="faultHandler(event)" method="GET" showBusyCursor="true" resultFormat="text">
    <s:request xmlns="">
      <email>{email.text}</email>
      <pass>{pass.text}</pass>
    </s:request>
  </s:HTTPService>
</fx:Declarations>
<s:VGroup verticalAlign="middle">
  <s:FormItem label="E-mail : ">
    <s:TextInput id="email" />
  </s:FormItem>
  <s:FormItem label="Password :">
    <s:TextInput id="pass" displayAsPassword="true" />
  </s:FormItem>
  <mx:Button label="Submit" click="service.send()" />
</s:VGroup>
</s:Application>

サーブレットの get メソッドのコーディングは次のとおりです。

String e = request.getParameter("email");
String p = request.getParameter("pass");
String resul;
PrintWriter out = response.getWriter();
resul = "Hi i am servlet, your username is " + e + " & password is " + p + ". are they correct ?";
out.print(resul);
4

1 に答える 1

0

アプリケーションで 2 つの異なるリクエストを送信しています。1つ目はHTTPService、2つ目はURLRequestです。

<s:HTTPService id="service" url="Srvlt" result="resultHandler(event)"
fault="faultHandler(event)" method="GET" showBusyCursor="true" resultFormat="text">
    <s:request xmlns="">
        <email>{email.text}</email>
        <pass>{pass.text}</pass>
    </s:request>
</s:HTTPService>

ResultEvent結果を処理すると、オブジェクトを介して応答文字列を取得できます

public function resultHandler(event : ResultEvent):void
{
    Alert.show(event.result); // you'll see "Hi i am servlet..." here
}

これで、この文字列を操作できます。

ただし、結果テキストを含む新しいページを開きたい場合は、を使用する必要はありませんHTTPServiceURLRequestクラスを使用します。

var request:URLRequest = new URLRequest("Srvlt");
var variables:URLVariables = new URLVariables();
variables.email = email.text;
variables.pass = pass.text;
request.data = variables;
navigateToURL(request);

だから、あなたは今それを間違っています。2 つの要求を送信しないでください。HTTPServiceアプリケーション内で結果を処理するかnavigateToURLURLRequest単に応答を新しいウィンドウに表示するかを選択します。

于 2012-10-19T08:47:51.080 に答える