【问题标题】:Retrieve hashmap values from java servlet to flex从java servlet检索hashmap值到flex
【发布时间】:2014-01-10 17:11:08
【问题描述】:

我正在研究“从 JSP 迁移到 FLEX,并将 java 作为后端。我是 java 和 JSP 的新手。

我一直在从 java servlet 获取值,它需要 httprequest 并且有一个名为 forward(request,response) 的函数作为 JSP 页面响应,其中包含所需的值。
现在我需要更改它并仅从该 servlet 获取数据并在 flex 中使用它。

问题:
case1:使用httpservice时,结果为字符串,但无法作为对象获取。
case2:如果我使用 RemoteObject ,它需要 java servlet 中的方法来获取返回值,这在现有的 servlet 中不存在。

我可以就这个问题获得任何建议吗?

谢谢

【问题讨论】:

  • 如果对象是列表或地图,尝试将resultFormat改为“array”,看看你从服务器返回。

标签: java jsp apache-flex servlets flash-builder4.5


【解决方案1】:

case1:你不再使用forward,你设置你想要返回的数据类型,例如:

response.setContentType("application/json");

... 在 servlet 中返回数据是通过将数据写入如下流来完成的:

PrintWriter out = response.getWriter();
out.print(object);

但我这样做已经有一段时间了,所以你可能会遇到一些小问题......

case2:如果你用的是servlet,用HTTPService是对的,RemoteObject不行,用不同的方式....


现在,如果可以的话,我会建议使用与 servlet 不同的东西——从 java 服务器获取数据到 Flex——我喜欢使用 GraniteDS。

如果您有兴趣,我将仅说明我看到的一些好处:

很容易设置: - 在java中,你只需添加一个graniteDS库,两个配置文件(granite+services-config xmls)将一个granite servlet配置添加到web.xml - 在 flex 中还有花岗岩库和 services-config.xml

设置后,使用它也非常简单——你有一个带有 Java 方法(或简单 bean 或 ejb)的类,它只返回任何类型的对象! Java就是这样

在 flex 中,在这种情况下,您使用 RemoteObject,您只需调用远程 java 方法,在结果处理程序中,您将获得 dataGranite 将负责序列化 + 传输 + 反序列化,并只为您提供 Object(只是动态 {} 或甚至确切的类类型)

【讨论】:

  • 抱歉回复晚了。我忙于其他项目,从那时起就开始上网了。我很荣幸感谢@user 和 matilu 在这个问题上帮助我。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-09
  • 1970-01-01
  • 2017-06-06
相关资源
最近更新 更多