使用jquery将javascript对象传递给jsp页面
我有javascript语言使用jquery将javascript对象传递给jsp页面,javascript,jquery,ajax,jsp,Javascript,Jquery,Ajax,Jsp,我有javascript语言 var data=newobject() 此对象的某些属性包括: 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
var data=newobject()代码>
此对象的某些属性包括:
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中,我说
objectobjparam=request.getParameter(“obj”)代码>
out.println(objParam.name)代码>
这似乎不起作用。请帮忙
因为您要发布到JSP,所以请确保在doPost(请求、响应)
方法中进行处理
通常,传递的所有数据都应为JSON格式。在你的情况下,它应该是
data: {'obj' : data}
要在服务器端进行分析,请使用库:
jsonobjectobj=(JSONObject)JSONValue.parse(request.getParameter(“obj”);
迭代器keys=obj.keys();
//迭代JSON对象的属性
while(keys.hasNext()){
字符串键=(字符串)键。下一步();
if(对象获取(键)JSONObject实例){
//JSONObject中的JSONObject
}否则{
//过程
}
}
见文件:
javascript的对象不同于java的对象。两者根本不具有可比性。这里是按原样发送javascript对象。这应该更改为json字符串
data: 'obj='+ JSON.stringify(data),
在服务器上,您还应该获取json字符串,然后使用一些机制(如ObjectMapper
Object objParam = request.getParameter("obj");
ObjectMapper om = new ObjectMapper();
om.readValue(objParam.toString(), ...);
您可以在客户端传递json数据(使用json.stringify()将javascript对象转换为json数据)。在服务端,使用Gson libarry可以将json数据映射到java对象
public class User{
private String userName;
//getters
//setters
}
Json格式
{"userName":"test_username"}
现在,您可以使用GSON库将json数据映射到java对象
例如,请参考下面的链接
我更改了数据传递到JSon的方式,但我不知道dopost的代码语法。是的,但我将通过jquery传递一个带有属性的javascript对象,然后传递到jsp。我希望jsp解析对象并返回各个属性。我该怎么做?我刚刚编辑了我的答案,以包括如何在服务器端进行处理。如果您找到了一个有效的答案,请通过将其标记为正确的方式让社区知道。这里给出的答案不起作用,它们过于复杂,我只是一个noobie。那么我该如何在jsp中解析javascript对象呢?我希望属性如上图所示。println(obj.name);ObjectMapper类提供了readValue函数,可用于转换。请参见本教程
{"userName":"test_username"}