如何使用jQuery将JSON对象数组发布到Struts2操作

How to post an array of JSON objects to a Struts2 action using jQuery?

本文关键字:Struts2 操作 数组 对象 何使用 jQuery JSON      更新时间:2023-09-26

使用Struts2。在我的行动中,我有一个List<Person> persons;

在javascript中,我有这样的函数:

function mytestfunction() {
    var url = "MyAction_mytestfunction.action";
    var params = {};
    var arr = [];
    var p1 = { "firstname" : "John", "lastname" : "Doe"};
    var p2 = { "firstname" : "Rob", "lastname" : "Smith"};
    arr.push(p1); arr.push(p2);
    params["persons"] = arr;
    $.post(url, params, function(data) {
        console.log("done");
    });
}

问题是,post()永远不会到达操作。日志中没有错误,什么都没有。

如果不是发布对象,而是发布基元,这一切都会改变。因此,当我在Action中有一个List<Integer> nums,在javascript中有params["nums"] = [1,2,3];时,一切都发布得很好。

那么,有没有一种方法可以通过javascript/jquery将JSON对象发布到Struts2操作?

我应该提到,我使用的是strutsjquery插件,而不是dojo。

我对struts一无所知,但这就是我用json:发布对象的方式

$.ajax({
    type: "POST",
    data: JSON.stringify(SOME_JAVASCRIPT_OBJECT),
    contentType: "application/json; charset=utf-8"
    // etc: etc
});

您可以尝试以下示例:

$.ajax({
       type: "Post",
    url: "action_name",    //you can pass through querystring like actionname?paramname=value
    data : {
           //here comes your param or array 
        },
    dataType:"json",
    contentType: "application/json; charset=utf-8",
});

如果您想通过querystring类型必须是GET