SSH 基于ajax实现修改密码功能步骤梳理

1. 为密码输入框进行输入校验,使用easyUI提供的easyui-validatebox

                  

 

 <table cellpadding=3>
 <tr>
    <td>新密码:</td>
    <td><input id="txtNewPass" type="Password" class="txt01 easyui-validatebox" 
               required="true" data-options="validType:'length[4,8]'" />
</
td> </tr> <tr> <td>确认密码:</td> <td><input id="txtRePass" type="Password" class="txt01 easyui-validatebox" required="true" data-options="validType:'length[4,8]'"/>
</
td> </tr> </table> </div> <div region="south" border="false" style="text-align: right; height: 30px; line-height: 30px;"> <a id="btnEp" class="easyui-linkbutton" icon="icon-ok" href="javascript:void(0)" >确定</a> <a id="btnCancel" class="easyui-linkbutton" icon="icon-cancel" href="javascript:void(0)">取消</a> </div> </div>

 

2. 为“确定”按钮绑定事件

<script type="text/javascript">
      //为“确定”按钮绑定事件
        $("#btnEp").click(function(){
            //进行表单校验
            var v = $("#editPasswordForm").form("validate");//对应表单中的所有输入框进行校验
            if(v){//表单校验通过
                //判断两次输入是否一致
                var v1 = $("#txtNewPass").val();
                var v2 = $("#txtRePass").val();
                if(v1 == v2){
                    //输入一致,发送ajax请求,修改当前用户的密码
                    var url = "${pageContext.request.contextPath}/userAction_editPassword.action";
                    $.post(url,{"password":v1},function(data){
                        if(data == '1'){
                            //修改密码成功
                            $.messager.alert("提示信息","密码修改成功!","info");
                        }else{
                            //修改失败
                            $.messager.alert("提示信息","密码修改失败!","warning");
                        }
                        //关闭修改密码的窗口 
                        $("#editPwdWindow").window("close");
                    });
                }else{
                    //输入不一致,提示用户输入不一致
                    $.messager.alert("提示信息","两次输入密码不一致!","warning");
                }
            }
        });
    </script>

 

3. 在UserAction中提供editPassword方法,修改密码

/**
     * 修改当前登录用户密码
     * @throws IOException 
     */
    public String editPassword() throws IOException{
        User user = (User) ServletActionContext.getRequest().getSession().getAttribute("loginUser");
        String password = model.getPassword();//新密码
        password = MD5Utils.md5(password);
        String flag = "1";
        try{
            userService.editPassword(password,user.getId());
        }catch (Exception e) {
            //修改密码失败
            flag = "0";
        }
        ServletActionContext.getResponse().setContentType("text/html;charset=UTF-8");
        ServletActionContext.getResponse().getWriter().print(flag);
        return NONE;
    }

 

4. 在BaseDao中扩展一个通用的更新方法

/**
     * 通用更新方法
     */
    public void executeUpdate(String queryName, Object... objects) {
        Session session = this.getSession();// 从本地线程中获得session对象
        // 使用命名查询语句获得一个查询对象
        Query query = session.getNamedQuery(queryName);
        // 为HQL语句中的?赋值
        int i = 0;
        for (Object arg : objects) {
            query.setParameter(i++, arg);
        }
        query.executeUpdate();// 执行更新
    }

 

5. 在User.hbm.xml中定义一个HQL语句,用于修改密码

 <query name="editPassword">
      UPDATE User SET password=? WHERE id=?
 </query>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值