1. 为密码输入框进行输入校验,使用easyUI提供的easyui-validatebox
2. 为“确定”按钮绑定事件
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语句,用于修改密码
UPDATE User SET password=? WHERE id=?