在页面如果没有表单的提交,可以采用js脚本生成元素的方法以便生成表单进行提交数据。
//创建form元素。参数url是设定请求的地址,参数params1是json对象,只有一层结构。参数paramName是数组对应后台json数据的名字,参数params2是json数组对应的对象,存放的是json对象数组
function postForm(url, params1, paramName, params2) {
var tempForm = document.createElement("form");
tempForm.action = url;
tempForm.method = "post";
tempForm.style.display = "none"
//创建input元素并设置提交的数据
if (params1) {
for ( var x in params1) {
var tempInput = document.createElement("input");
tempInput.name = x;
tempInput.value = params1[x];
tempForm.appendChild(tempInput);
}
}
if (params2 && params2 instanceof Array) {
for (var y = 0; y < params2.length; y++) {
for ( var z in params2[y]) {
var tempInput = document.createElement("input");
tempInput.name = paramName + "[" + y + "]." + z;
tempInput.value = params2[y][z];
tempForm.appendChild(tempInput);
}
}
}
//创建提交按钮元素
var tempInput = document.createElement("input");
tempInput.type = "submit";
tempForm.appendChild(tempInput);
//创建完将所对应的表单删除
document.body.appendChild(tempForm);
tempForm.submit();
document.body.removeChild(tempForm);
}
$(function() {
postForm("${ctx}/test/users/formObject", {
"id" : 232,
"username" : "dwere"
}, "students", [ {
"id" : 3434,
"username" : "123ere",
"password" : "dfere"
}, {
"id" : 3434,
"username" : "djfdkjfkjf",
"password" : "45rer4545"
}, {
"id" : 345,
"username" : "4ere3434",
"password" : "656rtrt"
} ])
})
eclipse的代码的后端调式部分截图所示结果: