aisell项目第二天

1 员工的crud

1.1 新增员工

思路步骤:

​ (1)弹出新增表单:

​ 点击新增按钮 -->弹出dialog对话框(对话框里面放一个form新增表单)

     add:function(){
            //清空表单
            employeeForm.form('clear');
            //隐藏表单密码框
            $("*[data-save]").show();
            //开启验证
            $("*[data-save] input").validatebox("enableValidation");
            //弹出对话框
            employeeDialog.dialog('open');
        }

(2)编辑form表单里面的内容

//提交表单:
 employeeForm.form('submit',{
                url:url,
                onSubmit: function(){
                    //重复密码验证 比较两个值是否相等 如果不相等 return false
                    //表示验证通过才能提交
                    return employeeForm.form("validate");
                },
                success:function(data){
                    var result = JSON.parse(data);//转成相应的json数据
                    if(result.success) {
                        employeeGrid.datagrid('reload');
                    }else{
                        $.messager.alert('提示信息','操作失败!,原因:'+result.msg,"error");
                    }
                    employeeDialog.dialog('close');
                }
            })

​ 点击保存按钮 --》调用controller保存方法–》保存到数据库–》关闭对话框

1.2 修改

–弹出对话框(和新增对话框共用)

​ (1)判断是否选中修改的数据

​ (2)如果选中之后,弹出表单,

​ (3)把选中数据 回显到表单里面

edit:function(){
            //获取表格里面是否选中的数据
            var row =  employeeGrid.datagrid('getSelected');
            if(row){
                //隐藏表单密码框
                $("*[data-save]").hide();
                //禁用验证
                $("*[data-save] input").validatebox("disableValidation");
                //弹出表单
                employeeDialog.dialog('center').dialog('open');
                //判断选中这行数据 是否存在department对象
                if(row.department){
                    //取到部门id值
                    // name="department.id"
                    row["department.id"] =row.department.id;
                }
                //回显数据
                employeeForm.form('load',row);
            }else{
                $.messager.alert('提示信息','请选中一条数据进行修改',"info");
            }
        }

–保存

​ 和新增保存一样,多了一个id

    save:function(){
            var id = $("#employeeId").val();
            var url="/employee/save";
            if(id){
                url="/employee/update?cmd=update";
            }
            //保存方法
            employeeForm.form('submit',{
                url:url,
                onSubmit: function(){
                    //重复密码验证 比较两个值是否相等 如果不相等 return false
                    //表示验证通过才能提交
                    return employeeForm.form("validate");
                },
                success:function(data){
                    var result = JSON.parse(data);//转成相应的json数据
                    if(result.success) {
                        employeeGrid.datagrid('reload');
                    }else{
                        $.messager.alert('提示信息','操作失败!,原因:'+result.msg,"error");
                    }
                    employeeDialog.dialog('close');
                }
            })
        }

1.3 修改的时候 数据丢失问题

丢失原因:

​ 提交表单里面 没有相应的数据 导致提交更新的时候 把数据库的字段就更新为空。比如headImage字段

解决方案:

​ (1) 表单里面添加隐藏域

(2) 添加注解 @Coloumn(updatable=false) //在修改的时候不去更新

​ (3) springmvc注解ModelAttribute

​ a)把原来的数据查询出来

​ b)接收数据和原来数据进行合并

​ c)在提交的时候就有值了

@ModelAttribute("editEmployee")
    public Employee beforeEdit(Long id,String cmd){
        System.out.println("---------------------");
        if(id != null && "update".equals(cmd)){
            //根据id 查询老数据  删除和修改都要id值,只需要修改进入
            Employee employee = employeeService.findOne(id);
        
            return employee;
        }else{
            return null;
        }
    }

   public AjaxResult update(@ModelAttribute("editEmployee") Employee employee){
        //修改代码
      return  saveOrUpdate(employee);
    }

1.4 解决n-to-n的问题

出现原因:修改一个持久化状态的主键值

解决方案:把关联对象清空

employee.setDepartment(null);

2 模板技术

第一个项目:freemark

2.1模板技术用途:

​ 把动态资源(jsp)进行静态化(html)处理

​ (1)生成一个静态页面 --(用的比较多)

​ (2)代码生成器 (js jsp controller service respository query) – 我们不用 (最后一个项目)

​ 配置模板 --生成代码

​ (3) 发送邮件模板

​ 例子:

​ 京东 淘宝 百度 --提高效率

2.2 为什么要做静态化处理:

​ 动态资源 加载 肯定要静态资源要慢,比如动态页面数据,每次加载都需要查询数据库,所有速度就会很慢

2.3 模板技术原理

freemark 和velocity

模板+数据—>生成 效果(html /java)

freemark:

​ (1)导包

(2)写一个模板

(3)生成对应的内容

2.4 使用velocity

(1)导入依赖

(2)创建模板

(3)生成数据

以后使用最多 就是存值和取值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值