标签:记录 new nal append defaults 文件上传 role form序列化 region
原始方式是这样的:
var prId = $("#prId").val();
var prNumber = $("#prNumber").val();
var prPrname = $("#prPrname").val();
var prRegion = $("#prRegion").val();
var prPersonid = $("#prPersonid").val();
var prRemarks = $("#prRemarks").val();
var defaultSetting = {
type : "post",
dataType : "json",
async : true,
loadingFlag : true,
traditional: false,
contentType: "application/x-www-form-urlencoded",
processData: true,
data: {
prId: prId,
prNumber: prNumber,
prPrname: prPrname,
prRegion: prRegion,
prPersonid: prPersonid,
prRemarks: prRemarks
},
};
当时试着用form序列化(form.serialize()),没成功映射到对象才那样写的,后来才知道。原来是因为form的input等标签没有name属性导致的。
后来知道了简略版写成这样。
var data=form.serialize()
var defaultSetting = {
type : "post",
dataType : "json",
async : true,
loadingFlag : true,
traditional: false,
contentType: "application/x-www-form-urlencoded",
processData: true,
data: data,
};
如果data的数据是动态的,像更新时候追加属性的情况可以这样写:
var data = $("#form").serializeJson();
$.extend(data, {userId: $(this).data("dataId")});
var defaultSetting = {
type : "post",
dataType : "json",
async : true,
loadingFlag : true,
traditional: false,
contentType: "application/x-www-form-urlencoded",
processData: true,
data: data,
};
当遇到文件上传时候,就要改改了,写成下面这样:
var formData =new FormData($("#editForm")[0]);
formdata.append("dustId", $(this).data("dataId"));
var defaultSetting = {
type : "post",
dataType : "json",
async : true,
loadingFlag : true,
traditional: false,
contentType: "application/x-www-form-urlencoded",
processData: true,
data: formData ,
};
controller层:
public void add(Project project)
用对象接受这样是没问题的。
以上方式是最常见的提交方式。
下面说一种contentType: application/json提交的方法。
这种方式提交文件是不行的
var formdata= $("#editForm").serializeJson()
var defaultSetting ={
url: action,
data: JSON.stringify(formdata),
cache: false,
contentType:"application/json",
processData: false,
async: false
}
controller层接受的时候
public void add(@RequestBody Role role)这样才可以映射到。
标签:记录 new nal append defaults 文件上传 role form序列化 region
原文地址:http://www.cnblogs.com/taiyanhong/p/7750361.html