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>

SSH 基于ajax实现修改密码功能步骤梳理的更多相关文章

  1. Sharepoint增加修改密码功能

    Sharepoint中没有自带的修改密码的功能. 如果使用的是AD验证,修改密码,只要修改域帐号的用户名密码就可以了.以下代码可以修改本机密码和域帐号密码. 做法是,添加一个webpart,做一个页面 ...

  2. 九十九:CMS系统之ajax提交修改密码的数据

    顺便实现ajax提交的时候默认提交csrf_token var http = { 'get':function (args) { args['method'] = 'get'; this.ajax(a ...

  3. Web实现数据库链接的登录注册修改密码功能

    /** * Copyright (C), 2017-2017 * FileName: User * Author: ichimoku * Date: 2017/12/5 14:31 * version ...

  4. JavaWeb网上图书商城完整项目--day02-19.修改密码功能流程分析

    我们来看看修改密码的业务流程操作:

  5. js用户修改密码功能模块

    ;(function(){ var ajaxSub = false, showError = function(msg){ if(msg){ $('#er_txt').html(msg).show() ...

  6. Yii2 实现修改密码功能

    YII2对密码加密生成的结果是不同的,即用相同的初始密码在不同时间得到的加密结果不同,所以我们不能用常用的方法去验证密码是否正确(将密码加密后与数据库中的密码相比较).YII2有自己的加密以及密码验证 ...

  7. 基于SpringBoot从零构建博客网站 - 设计可扩展上传模块和开发修改头像密码功能

    上传模块在web开发中是很常见的功能也是很重要的功能,在web应用中需要上传的可以是图片.pdf.压缩包等其它类型的文件,同时对于图片可能需要回显,对于其它文件要能够支持下载等.在守望博客系统中对于上 ...

  8. Liferay 6.2 改造系列之七:关闭使用条款确认、密码提醒、新用户强制修改密码等功能

    关闭使用条款确认: 在/portal-master/portal-impl/src/portal.properties配置文件中,有如下配置: # # Set this to true if all ...

  9. NTOPNG修改密码

    感觉这个有点妖,因为在两个实例上修改密码都失败了. 于是,从网上看看是怎么回事, 按以下步骤重置你想要的密码: 1,为密码生成MD5字串: echo -n "your_password&qu ...

随机推荐

  1. 使用httpclient异步调用WebAPI接口

    最近的工作需要使用Bot Framework调用原有的WebAPI查询数据,查找了一些方法,大部分都是使用HttpClient调用的,现时贴出代码供参考 using System; using Sys ...

  2. STL模板整理 priority_queue

    priority_queue 优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序,每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来 ...

  3. flutter 极光推送

    一.配置极光开发者 1.注册极光开发者 https://www.jiguang.cn/push 2.创建应用 二.创建APP 1.添加依赖 pubspec.yaml  添加: flutter_jpus ...

  4. Problem C: #104. 普通平衡树

    #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #inc ...

  5. P1162 填涂颜色 洛谷

    题目描述 由数字0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向.现要求把闭合圈内的所有空间都填写成2.例如:6X6的方阵(n=6),涂色前和涂色后的方阵如下: 0 ...

  6. React Native之ES5/ES6语法差异对照表

    很多React/React Native的初学者都被ES6的问题迷惑:各路大神都建议我们直接学习ES6的语法(class Foo extends React.Component),然而网上搜到的很多教 ...

  7. JavaScript对JSON数据进行排序

    var ajson= { "result":[ { "cid":1, "name":"aaa", "price ...

  8. MathType如何插入连乘

    这个就是连乘符号,只不过看着不习惯......就在眼皮子底下.

  9. 并发的HashMap为什么会引起死循环?(转)

    本文转自http://blog.csdn.net/zhuqiuhui/article/details/51849692 今天研读Java并发容器和框架时,看到为什么要使用ConcurrentHashM ...

  10. SeaJS入门

    Sea.js是一种模块加载工具 官网:http://seajs.org/docs/ 使用步骤: 1.下载sea.js 2.引入sea.js 3.加入配置代码 // seajs 的简单配置 seajs. ...