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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM