2014-01-10 109 views
0

我的“移民工作从JSP到Flex和Java作为后端。我在Java和JSP新手。从Java Servlet的检索HashMap中值弯曲

我被困在从Java获取值。servlet的地方需要的HttpRequest,有一个叫forward(request,response)函数作出响应,JSP页面与它requried值
现在我需要改变,并从这个servlet只得到的数据和使用,在柔性

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

我可以就这个问题得到任何建议。

谢谢

+1

如果对象是列表或映射,请尝试将resultFormat更改为“array”,并查看从服务器返回的结果。 – matilu

回答

1

案例1:你不使用着了,您将要返回的数据类型,例如:

response.setContentType("application/json"); 

...在servlet的返回数据通过像将数据写入到流做:

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

但它是前一阵子,因为我这样做,所以有可能你会遇到一些小问题...

案例2:如果您使用的servlet,它的正确使用的HTTPService,RemoteObject的是行不通的,它是用来区别....


现在,如果我可以,我会建议diferent东西使用比servlet - 从java服务器获取数据到Flex - 我喜欢使用GraniteDS。

我只是说出了一些好处我认为,如果你有兴趣:

这是很容易设置: - 在Java中,您将只需添加一个GraniteDS的库中,两个配置文件(花岗岩+服务 - config xmls)在web.xml中添加一个花岗岩servlet配置 - 在flex中也有花岗岩库和services-config.xml

设置时,使用它也很容易 - 你有一个类的方法或简单的bean或ejb)在Java中只返回任何类型的对象!这就是它在Java

在flex中,在这种情况下,您使用RemoteObject,您只需调用该远程java方法,并在结果处理程序中获得您的dataGranite将照顾序列化+传输+反序列化,只是给你的对象或者只是动态{}或者甚至是精确类的类型)

+0

我很迟才回复。自那时起,我一直忙于其他项目和力量。我想很荣幸谢谢@user和matilu帮助我解决这个问题。 再次感谢。 – user1647017