表单数据直接传给java对象

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25652949/article/details/81115725

开发框架: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控制台输出

猜你喜欢

转载自blog.csdn.net/qq_25652949/article/details/81115725