我有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);
这似乎不起作用。请帮忙。
答案 0 :(得分:2)
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
答案 1 :(得分:0)
javascript的对象不同于java的对象。这两者完全没有可比性。在这里,您将按原样发送javascript对象。这应该改为json字符串。
data: 'obj='+ JSON.stringify(data),
并且在服务器上你应该获取json字符串,然后使用ObjectMapper
Object objParam = request.getParameter("obj");
ObjectMapper om = new ObjectMapper();
om.readValue(objParam.toString(), ...);
答案 2 :(得分:0)
您可以在客户端传递json数据(使用json.stringify()转换为json数据的javascript对象)。在服务端,使用Gson Libarary可以将json数据映射到java对象。
public class User{
private String userName;
//getters
//setters
}
Json格式
{"userName":"test_username"}
现在您可以使用GSON库将json数据映射到java对象。
例如plz参考以下链接