form 表单序列化提交 Java后台转对象保存

 

jsp

 

表单记得用form 标签包起来,写上id,这个就不用代码了

<input type="button" value="提交"  onclick="save()" class="comfirmBtn" />

js

function save() {
    var dataArr = $("#form").serializeArray();
    var sendData = {};
    $.each(dataArr, function (i, o) {
        sendData[o.name] = o.value;
    });
    var url = path + '/userAddrApp/userAddr/save';
    ajaxRequest(url,'POST',{
        "obj":sendData,
        "userId":userId
    },function (ret,err) {
    })
}

 

java

    @RequestMapping(value = "save")
    @ResponseBody
    public String save(HttpServletRequest request){
        Map<String,Object> map = null;
        try {
            map = new HashMap<>();
            //接参数
            String obj = request.getParameterMap().get("obj")[0];
            //转对象
            UserAddr userAddr = (UserAddr) JsonUtil.JSONToObj(obj, UserAddr.class);
            //保存
            userAddrService.save(userAddr);
            map.put("code","1");
        } catch (Exception e) {
            map.put("code","0");
            e.printStackTrace();
        }

        return JsonUtil.toJsonString(map);
    }

 

JsonUtil

package com.hy.utils;

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonUtil {
    
    /**
     * 将json转化为实体POJO
     * @param jsonStr
     * @param obj
     * @return
     */
    public static<T> Object JSONToObj(String jsonStr,Class<T> obj) {
        T t = null;
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            t = objectMapper.readValue(jsonStr,
                    obj);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return t;
    }
}

 

posted @ 2020-10-13 15:39  雁书几封  阅读(703)  评论(0编辑  收藏  举报