2010-11-01 23 views
1

嗨我使用flash navigateToURL方法调用Java servlet。java servlets响应 - 留在同一页

在某些情况下,我希望servlet告诉浏览器客户端保持在同一页面上 - 我该如何实现这一目标?如果响应是空的,则页面变为空白。

回答

3

我认为你使用错误的方法来访问java servlets。如果您需要保持打开相同的页面,那么navigateToURL不是您应该使用的。 nagivateToURL方法是根据文档:

打开或替换包含Flash Player容器(通常是浏览器)的应用程序中的窗口。在Adobe AIR,该功能会打开默认的系统Web浏览器

一个URL可以使用

  1. 的Flash Remoting的API调用servlet的
  2. HttpService
  3. URLRequest方法。

查看链接了解更多详情。

0

你不能。 navigateToURL指示浏览器打开另一个URL。在浏览器导航更改后提取内容。

您应该在flex应用程序中发出HTTP请求。这是可以做到这样的:

var req:URLRequest = new URLRequest(); 
req.method = URLRequestMethod.POST; 
var vars:URLVariables = new URLVariables(); 
vars.param1 = "param1"; 
vars.param2 = "param2"; 
req.data = vars; 
req.url = "/targetUrl"; 

var loader:URLLoader = new URLLoader(); 
loader.addEventListener(Event.COMPLETE, pageLoadComplete); 
loader.load(req); 

然后在pageLoadComplete(event:Event)方法:

var result:String = URLLoader(event.currentTarget).data.toString(); 

这是明智的做出这样的调用返回简单truefalse,这取决于你的URL将不得不重定向。

+0

问题是,servlet应该指示浏览器打开“保存对话框”来保存文件 - 万一一切正常。在这种情况下,navigateToURL对我有好处。如果出现错误,我遇到问题 – 2010-11-01 08:12:01

+0

@Erik,您无法指示浏览器打开“保存对话框”。如果您使用适当的MIME发送文件,它将打开保存对话框。如有任何错误,请将MIME更改为文本并返回错误消息。 – 2010-11-01 08:27:10

+0

多数民众赞成正是我所做的 - 我设置该文件的MIME类型,以便浏览器打开保存对话框。不过,我必须使用navigateToURL,不是吗? – 2010-11-01 08:40:24