原生Java+JQuery form表單serializeArray提交自動對應java實體,這是一個實際的例子:
html界面:
<form id="data-form">
秒殺一:<input class="td_input" name="killA" type="number"><br>
秒殺二:<input class="td_input" name="killB" type="number"><br>
秒殺三:<input class="td_input" name="killC" type="number"><br>
秒殺四:<input class="td_input" name="killD" type="number"><br>
</form>
<div>
<span id="killApple" style="padding: 20px;">開始秒殺</span>
</div>
JS腳本,表單序列化 + 異步請求:
//點擊提交,發送異步請求
$("#killApple").click(function(content){
//獲取表單數據,並序列化
var formData = $("#flop-form").serializeArray();
//將序列化數據轉爲對象
var formObject = {};
for (var item in formData) {
formObject[formData[item].name] = formData[item].value;
}
formData = JSON.stringify(formObject);
//發送JSON到服務器
$.ajax({
type: "POST",
url: "/kill/killOrder",
contentType: "application/json", //一定要設置這一行,很關鍵
data : formData,
datatype: "json",
success: function (data) {
alert(JSON.stringify(data));
}
});
});
秒殺下單控制器:
package com.seesun2012.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.seesun2012.dao.entity.KillOrder;
import com.seesun2012.utils.Result;
/**
* 【秒殺下單】控制器
*
* @author [email protected]
*
*/
@Controller
@RequestMapping("/kill")
public class GameController extends BaseController{
/**
* 襯衫秒殺
*/
@RequestMapping(value = "/killApple", method = RequestMethod.POST, consumes = "application/json")
@ResponseBody
public Result killOrder(HttpServletRequest request, @RequestBody KillOrder ko){
try {
//具體業務實現
return Result.build(200, "秒殺成功");
} catch (Exception e) {
return Result.build(500, e.getMessage());
}
}
}
秒殺實體Bean:
package com.seesun2012.dao.entity;
/**
* 秒殺參數實體
*/
public class KillOrder {
private Integer killA;
private Integer killB;
private Integer killC;
private Integer killD;
//TODO GET、SET方法...
}
秒殺結果返回工具類:
package com.seesun2012.utils;
import java.io.Serializable;
import java.util.HashMap;
/**
* 統一返回結果類
*
* @author [email protected]
*
*//
public class Result extends HashMap<String, Object> implements Serializable {
private static final long serialVersionUID = 1L;
public static final Result SUCCEED = new Result(0, "操作成功");
public Result(int status, String massage) {
super();
this.put("status", status).put("message", massage);
}
public Result put(String key, Object value) {
super.put(key, value);
return this;
}
public static Result build(int i, String message) {
return new Result(i, message);
}
}
補充說明:
前端傳入var arr = new Array()
,後端對應接收List<String>
類型,前端異步代碼:
var arr = new Array();
var id = 'vpZKILaTvCfoqh4AZjx';
$.ajax({
type: "POST",
url: "/kill/insertBeatch",
data:{
phoneArr : arr,
id : id
},
dataType: "json",
success:function(res){
alert("導入成功!");
},
error : function(res) {
alert("請求失敗,請稍後重試!");
}
});
後端接收請求參數代碼:
/**
* 批量導入
*/
@RequestMapping(value = "/insertBeatch", method = RequestMethod.POST)
@ResponseBody
public Result killOrder(HttpServletRequest request,
@RequestParam("phoneArr[]") ArrayList<String> phoneArr,
@RequestParam("voucherId") String id){
try {
//具體業務實現
return Result.build(200, "秒殺成功");
} catch (Exception e) {
return Result.build(500, e.getMessage());
}
}
注:以上內容僅提供參考和交流,請勿用於商業用途,如有侵權聯繫本人刪除!
持續更新中…
如有對思路不清晰或有更好的解決思路,歡迎與本人交流,QQ羣:273557553
你遇到的問題是小編創作靈感的來源!