2012-03-14 25 views
0

使用Struts2。 在我行動我有一個List<Person> persons;如何使用jQuery將JSON對象數組發佈到Struts2動作?

在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"); 
    }); 
} 

問題是,後()永遠不會到達動作。日誌中沒有錯誤,沒有任何錯誤。

這一切都改變,而不是張貼對象我張貼原語。因此,當我在Action中使用List<Integer> nums並且在javascript中使用params["nums"] = [1,2,3];時,所有內容都會發布正常。

那麼,有沒有辦法通過javascript/jquery發佈JSON對象到Struts2動作?

我應該提到我使用的是struts-jquery插件,而不是dojo。

+0

爲什麼不使用S2 Json插件,它將負責在UI和Action類之間發送和接收JSON數據? – 2012-03-15 01:24:47

+0

我將如何使用JSON插件發送到使用struts-jquery插件的動作?我見過的例子使用dojo,而不是jquery。 – Valera 2012-03-15 15:08:24

回答

1

我不知道支柱什麼,但我這是怎麼員額的使用JSON:

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

你可以嘗試如下例子:

$.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", 
}); 

如果你想通過查詢字符串類型必須是GET

相關問題