基于ajax实现用户修改密码功能

 easyUI中validatebox使用(class="test01 easyui-validatebox")

非空校验 required="true"  //required="required"

使用validType指定

data-options="validType:'length[4,6]'" 

<input  required="true" data-options="validType:'length[4,6]'" id="txtNewPass" type="Password" class="test1 easyui-validatebox" />

确认按钮绑定事件:

                $("#btnEp").click(function(){
			//进行表单校验
			var v = $("#editPasswordForm").form("validate");
			if(v){
				//校验两次输入是否一致
				var v1 = $("#txtNewPass").val();
				var v2 = $("#txtRePass").val();
				if(v1 == v2){
					//两次输入一致,发送ajax请求
					$.post("userAction_editPassword.action",{"password":v1},function(data){
						if(data == '1'){
							//修改成功,关闭修改密码窗口
							$("#editPwdWindow").window("close");
						}else{
							//修改密码失败,弹出提示
							$.messager.alert("提示信息","密码修改失败!","error");
						}
					});
				}else{
					//两次输入不一致,弹出错误提示
					$.messager.alert("提示信息","两次密码输入不一致!","warning");
				}
			}
		});

在UserAction中创建修改密码方法

@Controller
@Scope("prototype")
public class UserAction extends BaseAction<User> implements ModelDriven<User> {
	
	
	@Autowired
	private IUserService userService;
	
	/**
	 * 更改密码
	 * @return
	 * @throws IOException 
	 */
	public String editPassword() throws IOException{
		String f = "1";
		User user = BOSUtils.getLoginUser();
		try{
			userService.editPassword(user.getId(),model.getPassword());
		}catch(Exception e){
			e.printStackTrace();
			f = "0";
		}
		ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
		ServletActionContext.getResponse().getWriter().write(f);
		
		return NONE;
	}
	
}

 在UserService中提供修改密码方法

public void editPassword(String id, String password) {
		//使用MD5加密密码
		String password1 = MD5Utils.md5(password);
		userDao.executeUpdate("user.editpassword", password1,id);
	}

在BaseDao中提供通用更新方法

public void executeUpdate(String queryName, Object... objects) {
		Session session = this.getSessionFactory().getCurrentSession();
		Query query = session.getNamedQuery(queryName);
		int i = 0;
		for (Object object : objects) {
			//为HQL语句中的?赋值
			query.setParameter(i++, object);
		}
		//执行更新
		query.executeUpdate();
	}

在User.hbm.xml中定义更新语句

<query name="user.editpassword">
    	UPDATE User SET password = ? WHERE id = ?
</query>

猜你喜欢

转载自blog.csdn.net/qq_41566772/article/details/86909820
今日推荐