fridge11_24

来源:互联网 发布:大话2召唤兽数据预测 编辑:程序博客网 时间:2024/06/01 23:40

写了好几天,终于把更新写出来了。

这是后台代码,使用post进行改操作。model为表单更新后的数据。

//更改一个部门@PostMapping(value="/edit")public Resp edit(Department model){    //model为输入后的数据    Department department=departmentRepository.findOne(model.getDepartmentId());    if (department == null) {        return new Resp(Resp.PARAM_ERROR, "部门错误!");    }    if (ParamUtil.isBlack(model.getName())) {        return new Resp(Resp.PARAM_ERROR, "请输入部门名称!");    }    if (ParamUtil.isBlack(model.getStaffId())) {        return new Resp(Resp.PARAM_ERROR, "请输入负责人工号!");    }    if (ParamUtil.isBlack(model.getMobile())) {        return new Resp(Resp.PARAM_ERROR, "请输入部门联系电话!");    }    department.setName(model.getName());    department.setStaffId(model.getStaffId());    department.setMobile(model.getMobile());    departmentRepository.save(department);    return new Resp("修改成功");}

之前一直因为js部分是jquery序列化取值,取表单上的值,而表单上没有显示departmentId,因为在多次调试后,得知了有model对象而无departmentId传入的情况。

department.js文件中edit部分(用于提交修改表单):

edit : function() {
    //取得id为#depart_form_edit的表单的序列化值    var model = $('#depart_form_edit').serialize();
    //modeljQuery的序列化字符串,model+token    var resp = AjaxUtil.postJson(AjaxUtil.url + 'departManager/edit', model += '&token=' + this.token);   // console.log(resp);//恒为null   //console.log(model);测试用    if (resp) {        SwalUtil.success(resp.msg);        $('#depart_table').bootstrapTable('refresh');        $('#depart_form_edit')[0].reset();        $('#depart_modal_edit').modal('hide');    }},

还有一个editUI(对应表格界面的修改按钮):

editUI : function() {    var rows = $('#depart_table').bootstrapTable('getSelections');    if (rows.length == 0) {        SwalUtil.error("请选择要修改的部门!");        return;    } else if (rows.length > 1) {        SwalUtil.error("一次只能修改一个部门!");        return;    } else {        var row = rows[0];        $('#depart_form_edit').autofill(row);        $('#depart_modal_edit').modal('show');        var resp = AjaxUtil.getJson(AjaxUtil.url + "departManager/list?token=" + depart.token + "&departmentId=" + row.departmentId);    }

而在department.html中的修改页面部分代码:

<div class="modal-body">    <form id="depart_form_edit">        <!--===通过显示ID来获取ID=======-->        <div class="form-group" hidden="hidden">            <label >部门ID</label><input type="text" class="form-control" name="departmentId" placeholder="请输入部门ID" readonly/>        </div>        <!--===========================-->        <div class="form-group">            <label>部门名称</label><input type="text" class="form-control" name="name" placeholder="请输入部门名称" />        </div>        <div class="form-group">            <label>负责人工号</label><input type="text" class="form-control" name="staffId" placeholder="请输入负责人工号" />        </div>        <div class="form-group">            <label>部门联系电话</label><input type="text" class="form-control" name="mobile"  placeholder="请输入部门联系电话" />        </div>    </form></div>

部门ID 的元素设置为hidden且readonly,因为disable无法被表单序列化获取。


排查了很久的问题,最后只要在修改页面上加一个隐藏的输入框就可以了。



对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不需要用到PUT和DELETE。


js对象序列化:department.js中,edit function:model变量为department.html中的修改弹出页面的数据序列化对象。
对象序列化是指将对象的状态转换为字符串;
js对象序列化格式(自行百度)
序列化与反序列化
将表单中的值序列化并加上token值,即表单序列化;


json字符串是json对象的string形式,也就是string,但是符合json对象的格式
若是json对象,那就可以使用getXxx(..)来得到某key对应的value了。
json对象可以通过javascript存取属性!json对象装成json字符串经常用于前后台传输数据


jquery $()


IllegalArgumentException异常之所以会产生是由于JpaRepository类中的findOne方法不允许参数为空。


bootstraptable  responseHandler  :加载服务器数据之前的处理程序,可以用来格式化数据。
参数:res为从服务器请求到的数据。
个人理解:在初始化的时候  用来格式化数据   res是从服务器请求到的数据 
 当预处理请求不成功时  返回空对象  当预处理请求成功时,返回rep的obj对象


jquery autofill下载插件使用


在department.html新建一个部门修改模态框,修改div id。


addUI和editUI设置添加修改按钮的。
在新建模态框的保存按钮上,定义为add、edit

原创粉丝点击