2013-02-13 92 views
0

如何通过ajax将对象类型的元素发送到servlet?下面 在我传递的价值作为Ajax如下:如何通过Ajax发送对象到Servlet

data: { mapList : mapLists } 

要获得在Servlet正在做的价值低于如下:

Object o = request.getAttribute("mapList"); 
System.out.println(o); 

但是,返回的值总是。我该怎么做才能解决这个问题?

回答

0

通过改变你的Ajax DATAS:

data: { 'mapList' : mapLists } 
+0

你好,你做了两个修改,但结果仍然是空。下面的链接打印出我想发送给我的Servlet http://bit.ly/V9oHsg的对象。所以,伙计们,还有其他的提示吗?谢谢。 – 2013-02-13 17:20:18

0

在HTTP GET或POST请求,你只能发送键/值对的列表作为参数传递给服务器,所以你将不得不手动序列化你的对象发送它的属性就是这种格式。

你应该更好地代替HttpServletRequest.getAttribute(String)使用HttpServletRequest.getParameter(String)。此外,作为HTTP GET/POST参数获得的内容将始终作为String在servlet中接收。

我假设你正在使用jQuery发送Ajax请求。我还认为你的mapLists变量是一个json对象。据我所知,jQuery不会自动将json对象转换为键/值对HTTP参数列表,因此您必须自行完成,然后将其解析回servlet。你可以使用JSON.stringify()来转换你的json对象,或者你可以手动序列化它。

+0

你好,你们都做了你所说的修改,但结果仍然是空的。下面的链接打印出我想发送给我的Servlet http://bit.ly/V9oHsg的对象。所以,伙计们,还有其他的提示吗?谢谢。 – 2013-02-13 17:26:00

+0

Hello Roberto Linares感谢您的反馈。 [此链接](http://pastebin.com/Nug8CpVm)包含生成我的对象(数组)的函数。 [此链接](http://pastebin.com/j99dXmLa)有代码,我如何通过ajax发送结果并将其获取到servlet中。有了这些结果,我认为是拿起价值,并把它们放在地图;。括号内的值是键和括号内的值作为值。以“疾病”格式返回值:[“名称”,“班级”],“药物”:[“适应症”],“GenericDrug”:[“影响有机体”] – 2013-02-13 21:07:21