SpringBoot前端页面获取form中元素,封装为json字符串,使用JPA更新数据

  1. 前端页面获取Form元素封装为json字符串。
    function getFormJson(){
      var test = $("#id").serializeArray();                                //serializeArray() 方法通过序列化表单值来创建对象数组(名称和值)。
      var dataStr = "{";
      for(var i = 0;i < test.length;i++){
        var nameT = test[i].name;
        var valueT = test[i].value;
        dataStr = dataStr + "\"" + nameT + "\":\"" + valueT.trim() + "\",";  //trim()方法用来去除空格
      }
      /*获取复选框的值,一般复选框只有一个时,我们在选中和未选中时都要传一个值。选中时,上面的方法会获取到,但是未选中时,这里可以定义你要传的值,我这里传的值为字符串 '0' ,当然你也可以定义其他的值*/
      $("#"+ id + " input[type='checkbox']").each(function(){
        if(!$(this).is(':checked')){                                        //这里判断复选框如果未被选中的话执行下一步
         dataStr =  dataStr + "\"" + $(this).attr('name') + "\":\"0\",";
        }
      });
      dataStr = dataStr.substring(0, dataStr.length - 1);                   //去掉最后一个属性的逗号
      dataStr = dataStr + "}";
     // var dataJson = JSON.parse(dataStr);                                   //parse()方法把dataStr对象转成json数据
      return dataStr;
    }

     

  2. ajax传递数据到后台。
    function submitComment(){
            //此处做必填校验
            var subData =getFormJson();
            $.ajax({
                url: "/saveGdData",
                type: 'post',
                data: subData,
                contentType: "application/json;charset=UTF-8",
                async: false,
                cache: false,
                success:function (data) {
                    if(data=="true"){
                        myTips("success","数据保存成功!");
                        //设置按钮不可点
                        $("#submitData").removeClass().addClass("weui-btn weui-btn_disabled weui-btn_primary").removeAttr("onclick");
                    }else{
                        myTips("error", "数据保存失败!");
                    }
                },
                error:function (error) {
                    console.log(error);
                }
            });

     

  3. 使用jpa的save方法更新数据,不存在则保存。
     @RequestMapping("/saveGdData")
        @ResponseBody
        public String saveGdData(@RequestBody Bill bill){
            String msg = "true";
            bill.setCsr_cssj(new Date());
            Bill returnBill = billService.save(bill);
            if(returnBill==null){
                msg = "false";
            }
            System.out.println(bill.toString());
            return msg;
        }

     

  4. 重写实体类的toString
    public String toString() {
            Field[] fields = this.getClass().getDeclaredFields();;
            StringBuffer sb = new StringBuffer();
            sb.append(this.getClass().getName() + ":[\n");
            for (Field field : fields) {
                sb.append("    ");
                sb.append(field.getName() + " = ");
                try {
                    sb.append(field.get(this));
                } catch (IllegalArgumentException e) {
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
                sb.append("\n");
            }
            sb.append("]");
            return sb.toString();
        }

     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值