gpt4 book ai didi

java - 如何创建一个将文本输入传递给 servlet 并重定向到同一个 servlet 的 Flex 程序

转载 作者:行者123 更新时间:2023-12-01 05:04:03 25 4
gpt4 key购买 nike

我想将 mxml 文件重定向到 servlet 并在 servlet 上打印代码,但是当我使用导航到 url 代码时,输​​出显示 servlet 页面中文本输入字段的 null 值,请帮助我澄清问题下面给出mxml和servlet的基本编码

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>

servlet的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);

最佳答案

您在应用程序中发送了 2 个不同的请求。第一个是 HTTPService,第二个是 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
}

您现在可以使用此字符串。

但是如果您想使用结果文本打开新页面,则不需要使用HTTPService。使用 URLRequest 类。

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

关于java - 如何创建一个将文本输入传递给 servlet 并重定向到同一个 servlet 的 Flex 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12968729/

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