使用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);
这似乎不起作用。 请帮忙。
- 因为您要发布到JSP,所以请确保在
doPost(request, response)
方法中处理。 -
通常,传递的所有数据都应采用JSON格式。 在你的情况下,它应该阅读
data: {'obj' : data}
-
要在服务器端解析,请使用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参考以下链接