遇上用url方式传参发现url超长了。。只好用post方式传。
函数如下:
function post(URL, PARAMS) {
var temp = document.createElement("form");
temp.action = URL;
temp.method = "post";
temp.style.display = "none";
for ( var x in PARAMS) {
var opt = document.createElement("textarea");
opt.name = x;
opt.value = PARAMS[x];
// alert(opt.name)
temp.appendChild(opt);
}
document.body.appendChild(temp);
temp.submit();
return temp;
}
调用如下:
var params = {
'a' : a,
'b' : b,
'c' : c
};
post('pm-report!exportAndDownloadPmAnalysisInfo.action', params);
补充:
后来发现array类型传后台很麻烦,就用Ext.encode将数组对象编码为json字符串传递到后台,再转化为ArrayList<Map>类型,转化代码如下:
JSONArray jArray = JSONArray.fromObject(this.modifyList.get(0));
List<String> sList = JSONArray.toList(jArray, new String(),
new JsonConfig());
List list = new ArrayList();
for(String s :sList){
list.add(JSONObject.fromObject(s));
}