Javascript 在通过ajax post发送之前,将附加数据附加到序列化的表单数据
在使用ajax post方法将表单数据发布到控制器时,我遇到了困难。以下是我的要求, 域类:Javascript 在通过ajax post发送之前,将附加数据附加到序列化的表单数据,javascript,java,jquery,ajax,spring-mvc,Javascript,Java,Jquery,Ajax,Spring Mvc,在使用ajax post方法将表单数据发布到控制器时,我遇到了困难。以下是我的要求, 域类: public class Bill implements Serializable{ private String appointmentId; private long billAmount; private long paidAmount; private String discount; private long dueAmount; private String modeOfPayment;
public class Bill implements Serializable{
private String appointmentId;
private long billAmount;
private long paidAmount;
private String discount;
private long dueAmount;
private String modeOfPayment;
List<ServicePackage> packageList =new ArrayList<ServicePackage>();
//Many more fields and their Corresponding getters and setters//
}
public class ServicePackage implements Serializable{
private String packageName;
private String packageCode;
private long packageCost;
//Many other along with the corresponding getters and setters//
}
Jsp代码:当用户需要添加更多行(下面未包括)时,为了克隆行,还有一些逻辑
任何帮助或建议都会有帮助。请帮我解决这个问题。提前感谢。$('input#saveButton')。打开('click',函数(e){
$('input#saveButton').on('click', function(e){
//Getting the package names and adding into a list.
var rows=$("#packages tbody tr.packageRow").length;
var packageList= [];
for(i=0;i<rows;i++){
var packId=$('[name="packageNames['+i+']"]').val();
var pack = {"packageId": packId};
packageList.push(pack);
}
packageList = JSON.stringify(packageList);
//Form Data of id billForm//
var billData=$('form#billForm').serialize();
billData.packageList = packageList;
$.ajax({
type: "POST",
url: "/LoginMavenSpringMVC/billing/save",
data: billData,
success: function(response){
console.log("Succeeded");
},
error: function(e){
alert('Error: ' + e);
}
});
})
//获取包名并添加到列表中。
变量行=$(“#packagest body tr.packageRow”).长度;
var packageList=[];
对于(i=0;i您可以这样尝试
packageList = JSON.stringify(packageList);
//Form Data of id billForm//
var billData=$('form#billForm').serialize();
//Appending additional data with formData
var dataToSend = $.extend(billData,packageList);
$.ajax({
type: "POST",
url: "/LoginMavenSpringMVC/billing/save",
data: dataToSend,
success: function(response){
console.log("Succeeded");
},
error: function(e){
alert('Error: ' + e);
}
});
谢谢你的回答,但它对我不起作用。控制器中也有什么需要更改的吗?
@RequestMapping(value="/save")
public @ResponseBody String save(@ModelAttribute(value="bill")Bill bill, ModelMap model){
System.out.println("BillAmount: "+bill.getBillAmount());
System.out.println("Amount Paid : "+bill.getPaidAmount());
System.out.println("DueAmount: "+bill.getBillingDate());
for(ServicePackage pack:bill.getPackageList()){
System.out.println("Package "+pack.getPackageId());
}
return "Successfully Executed";
}
$('input#saveButton').on('click', function(e){
//Getting the package names and adding into a list.
var rows=$("#packages tbody tr.packageRow").length;
var packageList= [];
for(i=0;i<rows;i++){
var packId=$('[name="packageNames['+i+']"]').val();
var pack = {"packageId": packId};
packageList.push(pack);
}
packageList = JSON.stringify(packageList);
//Form Data of id billForm//
var billData=$('form#billForm').serialize();
billData.packageList = packageList;
$.ajax({
type: "POST",
url: "/LoginMavenSpringMVC/billing/save",
data: billData,
success: function(response){
console.log("Succeeded");
},
error: function(e){
alert('Error: ' + e);
}
});
})
packageList = JSON.stringify(packageList);
//Form Data of id billForm//
var billData=$('form#billForm').serialize();
//Appending additional data with formData
var dataToSend = $.extend(billData,packageList);
$.ajax({
type: "POST",
url: "/LoginMavenSpringMVC/billing/save",
data: dataToSend,
success: function(response){
console.log("Succeeded");
},
error: function(e){
alert('Error: ' + e);
}
});