1. 程式人生 > >表單資料直接傳給java物件

表單資料直接傳給java物件

開發框架: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實體物件
瀏覽器console輸出

eclipse控制檯輸出