zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    幸福必读
    JAVA程序员之路
    编写数据库操作类,使ASP.NET 中的数据库操作变得简单
    Duwamish 7.0 系列分析文章
    Visual Studio .NET加密技术剖析系列课程
    做为一个Tester,你为Testing付出了多少?
    程序员分成几种不同的境界
    深度探索C++对象模型(2).txt
    Eclipse快速上手指南之使用JUnit
    Eclipse使用技巧
  • 原文地址:https://www.cnblogs.com/zjfjava/p/6961120.html
Copyright © 2011-2022 走看看