使用jquery将javascript对象传递给jsp页面

我有javascript

var data = new Object();

这个对象的一些属性是:

 data.name = "mike"; data.id = 1; 

我使用jquery将对象传递给jsp页面

 var request = $.ajax ({ url: "test.jsp", type: "post", data: 'obj='+ data, success: function(msg) { $('#response').html(msg);}, error:function (xhr, ajaxOptions, thrownError){ alert(xhr.status); alert(thrownError); } }); 

在jsp我说

Object objParam = request.getParameter("obj"); out.println(objParam.name);

这似乎不起作用。 请帮忙。

  1. 因为您要发布到JSP,所以请确保在doPost(request, response)方法中处理。
  2. 通常,传递的所有数据都应采用JSON格式。 在你的情况下,它应该阅读

     data: {'obj' : data} 
  3. 要在服务器端解析,请使用org.json库:

      JSONObject obj = (JSONObject) JSONValue.parse(request.getParameter("obj")); Iterator keys = obj.keys(); //iterate over the properties of the JSON object while( keys.hasNext() ){ String key = (String)keys.next(); if( obj.get(key) instanceof JSONObject ){ //a JSONObject inside the JSONObject } else { //process } } 

    请参阅文档: JSONObject

javascript的对象不同于java的对象。 这两者完全没有可比性。 在这里,您将按原样发送javascript对象。 这应该改为json字符串。

 data: 'obj='+ JSON.stringify(data), 

而且在服务器上你应该得到json字符串然后通过使用一些机制,如ObjectMapper将json转换为java对象

 Object objParam = request.getParameter("obj"); ObjectMapper om = new ObjectMapper(); om.readValue(objParam.toString(), ...); 

您可以在客户端传递json数据(使用json.stringify()转换为json数据的javascript对象)。在服务端,使用Gson Libarary可以使用java对象映射json数据。

  public class User{ private String userName; //getters //setters } 

Json格式

 {"userName":"test_username"} 

现在,您可以使用GSON库将json数据映射到java对象。

例如plz参考以下链接

https://sites.google.com/site/gson/gson-user-guide