表單資料直接傳給java物件
阿新 • • 發佈:2018-11-23
開發框架:spring boot
在開發過程中前端填寫的表單資料如何直接傳給後臺賦值給java實體物件?
原始方法是
String variable = request.getParameter("formName");
entity.setVariable(variable);
....
但是當表單項過多時,java程式碼一項一項這樣寫會很麻煩
所以可以在前端用Js將表單項資料一起封裝為一個json格式的資料
html程式碼
<form id="form1">
<input type="text" id="rolename" name="rolename" />
<input type="text" id="remark" name="remark" />
<input type="button" onclick="javascript:a()" value="submit" ></input>
</form>
jquery程式碼:
function a(){
var form={};
var rolename = $("#rolename").val();
var remark = $("#remark" ).val();
form["rolename"]=rolename;
form["remark"]=remark;
console.log(JSON.stringify(form));
$.ajax({
enctype: "multipart/form-data",
type:'POST',
contentType: "application/json; charset=utf-8",
dataType:'json',
url:"/admin/test-t" ,
data:JSON.stringify(form),
success:function(result){
//。。。
}
});
}
java後臺程式碼:
@RequestMapping(value="/admin/test-t",method = RequestMethod.POST,produces="application/json;charset=UTF-8",consumes="application/json;charset=UTF-8")
@ResponseBody
public JSONObject sss(@RequestBody RoleEntity entity){
System.out.println("roleName:"+entity.getRolename());
System.out.println("remark:"+entity.getRemark());
JSONObject jobj =(JSONObject) JSONObject.toJSON(entity);
return jobj;
}
consumes和produces一定要寫
接收的引數直接是Java物件 前面新增@RequestBody註解
前端Js程式碼裡Json資料的key名一定要和Java物件裡的成員名相同,這樣才能將Json資料直接賦值給java實體物件