0

如何通过 ajax 将对象类型的元素发送到 servlet?在 ajax 中,我传递的值如下:

data: { mapList : mapLists }

要获取 Servlet 中的值,请执行以下操作:

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

但是,返回值始终为null。我应该怎么做才能解决这个问题?

4

2 回答 2

0

在 HTTP GET 或 POST 请求上,您只能将键/值对列表作为参数发送到服务器,因此您必须手动序列化您的对象才能以这种格式发送其属性。

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

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

于 2013-02-13T16:55:22.203 回答
0

通过以下方式更改您的 ajax 数据:

data: { 'mapList' : mapLists }
于 2013-02-13T16:49:10.580 回答