014医疗项目-模块一:删除用户的功能l

本文介绍了一个用户删除功能的实现过程,包括Dao层的数据库操作、Service层的逻辑处理、Action层的数据交互及前端页面的展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

删除用户的功能我们还是按照:Dao->Service->Action->页面调试这种顺序来写。

Dao:

我们使用逆向工程生成的方法就好:

SysuserMapper sysuserMapper;
sysuserMapper.deleteByPrimaryKey(userid);

 

Service层:

涉及到一些逻辑:

    //根据用户的id来删除用户
    @Override
    public void deleteUserByUserid(String userid) throws Exception {
/*
 * 
 * 只有用户存在才能删除,不然的话不能删除,所以这里有一个校验约束
 * 
 */
        //校验用户是否存在
        /*
         * 这里会很奇怪,为什么要校验用户是否存在呢,不存在也没有关系啊,大不了不删除了么,
         * 但是,如果删除了,也是执行了这段代码,那么页面怎么办,难道还是提示说删除用户成功吗?
         *这不就是出问题了吗
         *
         * 
         * 
         * 
         */
        
        /*
         * 第一步;显示查询出用户。
         * 第二步:判断一下是不是为空;不存在就是给出提示,及时抛出异常。用之前学的工具类去抛出异常。
如果不是空的,那就删除好了 * * * *
*/ Sysuser sysuser=sysuserMapper.selectByPrimaryKey(userid);//查找用户 if(sysuser==null)//如果用户不存在。就要抛出异常 { //抛出异常 ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 212, null)); } //如果前面不抛出异常,这里就会执行删除。 sysuserMapper.deleteByPrimaryKey(userid); }

 

 

Action层:

记住这个层不要写什么业务逻辑,业务逻辑写在Serive层就好了。在Action做的就是从Service层得到数据吗,然后把数据返回给页面。

@RequestMapping("/deletesysuser")
    public @ResponseBody SubmitResultInfo deletesysuser(String id) throws Exception
    {//调用Service
        userService.deleteUserByUserid(id);
//调用这里就是前一篇文章说的工具类的使用,把一些操作全部封转到了这个工具类,用起来就简单方便了。
return ResultUtil.createSubmitResult(ResultUtil.createSuccess(Config.MESSAGE, 906, null)); }

 

 最后就是调试页面了:先看要实现的效果:

 

点击删除之后就会被删除记录。

好了,我们来实现这个功能:

第一步:在每一条的记录后面都有一个“删除”按钮的链接。

做法:

打开queryuser.jsp页面:

在columns_v那边加上一行:

    {
        field : 'opt1',//之前的都是对应于json里面有的,json里面的就是对应于类里面的属性的,但是这个删除的话就没有包含在json里面,可以随便的取一个名字。
        title : '删除',
        width : 120,
        formatter : function(value, row, index) {//通过此方法格式化显示内容,value表示从json中取出该单元格的值,row表示这一行的数据,是一个对象,index:行的序号
        //这里无非就是要放入id么,row表示的是查询到的这一行的数据,里面肯定是有id数据的,所以直接是row.id就可以了。
            return "<a href=javascript:deleteuser('"+row.id+"')>删除 </a>";
        }
    }

然后整体代码变成:

    //datagrid列定义
    var columns_v = [ [ {
        field : 'userid',//对应json中的key,json中的key就是java对象中的属性名
        title : '账号',
        width : 120
    }, {
        field : 'username',//对应json中的key
        title : '名称 ',
        width : 180
    }, {
        field : 'groupid',//对应json中的key
        title : '用户类型',
        width : 120,
        
        formatter : function(value, row, index) {//通过此方法格式化显示内容,value表示从json中取出该单元格的值,row表示这一行的数据,是一个对象,index:行的序号
            if(value =='1'){
                return "卫生局";
            }else if(value =='2'){
                return "卫生院";
            }else if(value =='3'){
                return "卫生室";
            }else if(value =='4'){
                return "供货商";
            }else if(value =='0'){
                return "系统管理员";
            }
        }

    }, {
        field : 'sysmc',//对应json中的key
        title : '所属单位',
        width : 120
    }, {
        field : 'userstate',//对应json中的key
        title : '状态',
        width : 120,
        formatter : function(value, row, index) {//通过此方法格式化显示内容,value表示从json中取出该单元格的值,row表示这一行的数据,是一个对象,index:行的序号
            if(value =='1'){
                return "正常";
            }else if(value =='0'){
                return "暂停";
            }
        }
    },
    {
        field : 'opt1',//之前的都是对应于json里面有的,json里面的就是对应于类里面的属性的,但是这个删除的话就没有包含在json里面,可以随便的取一个名字。
        title : '删除',
        width : 120,
        formatter : function(value, row, index) {//通过此方法格式化显示内容,value表示从json中取出该单元格的值,row表示这一行的数据,是一个对象,index:行的序号
        //这里无非就是要放入id么,row表示的是查询到的这一行的数据,里面肯定是有id数据的,所以直接是row.id就可以了。
            return "<a href=javascript:deleteuser('"+row.id+"')>删除 </a>";
        }
    }
    ] ];

 

 

这里解释一下:

 formatter : function(value, row, index) {//通过此方法格式化显示内容,value表示从json中取出该单元格的值,row表示这一行的数据,是一个对象,index:行的序号
        //这里无非就是要放入id么,row表示的是查询到的这一行的数据,里面肯定是有id数据的,所以直接是row.id就可以了。
            return "<a href=javascript:deleteuser('"+row.id+"')>删除 </a>";
        }

因为之前这个删除功能不是在json里面的数据,所以显示的内容“删除”要进行格式处理,就用到了formatter。
这里的 return "<a href=javascript:deleteuser('"+row.id+"')>删除 </a>"是一个超链接。表示调用的是javascript中的一个叫做deleteuser的方法,然后把这一行数据的id传入进去。
我们来看一下,deleteuser这个函数做了什么事。

    //删除用户的方法
    function deleteuser( id)
    {
        alert(id);
        
        _confirm('您确认删除吗',null,function()
                {
            $("#delete_id").val(id); //把id传进来的值赋给delete_id;
            jquerySubByFId("sysuserdeletefrom",userdel_callback,null,"json");//找到sysuserdeleteform这个表单,执行里面的action。返回的数据时json数据,接着去执行
//userdel_callback函数。
}); }

我们看一下:sysuserdeletefrom这个表单。

<form  id="sysuserdeletefrom" action="${baseurl}user/deletesysuser.action" method="post">

<input type="hidden" id="delete_id" name="id">//前面的函数里面把id的值已经给了这个input,
</form>

这里写明了action="${baseurl}user/deletesysuser.action",所以会去执行Actionc层里面的方法。

 说好了表单,我们来介绍一下userdel_callback这个回调函数。

    function userdel_callback(data)
    {
        
        
        message_alert(data);
        var type=data.resultInfo.type;
        if(type==1)
            {
            //成功
            queryuser();
            
            
            }
        
        
    }

处理返回回来的json数据,如果是1说明成功了。

 

 

调试运行,OK.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值