用户密码修改
1.思路:将登录用户的ID保存到session中,获取session的userid,由此可以查处用户的username和password
2.难点:回显,需要回显的用户的姓名,已经由dao查取出,在struts中有<html:text propert="" name="actionform">中显示,由于没有vo的与缘故,
对form的操作要在action中完成;String s = (String) request.getSession().getAttribute("PUSERID");//获取session中的用户id;
3.logic中的迭代查找出的信息,选用string[];
ChangePwdDao changePwdDao=new ChangePwdDao();
List list=changePwdDao.SelectById(puserid);
Iterator iterator=list.iterator();
String[] str = null;
if(iterator.hasNext()){
Object[] objects=(Object[])iterator.next();
str = new String[objects.length];
str[0] = objects[0].toString();
str[1] = objects[1].toString();
}
return str;
}
4.更新密码;
5.难点:判断旧密码是否输入正确;判断的时候在action的update中的event中进行,如果符合哲进行更新,错误弹出错误信息;
if( "UPD".equals(changePwdForm.getEvent())){
System.out.println("旧密码: " + changePwdForm.getCpassword());
System.out.println("新密码: " + changePwdForm.getCpassworda());
if(cLogic.getUser(changePwdForm.getCpassword(), userid)) { //将页面获取的输入密码和用户id传入到logic中
System.out.println("原密码相符");
cLogic.Update(changePwdForm.getCpassworda(), userid);
changePwdForm.setPwdFail("true");//给页面传入的值,使得页面判断是否密码输入成功
System.out.println("@@@@@@@@@@@@@@ "+ changePwdForm.getPwdFail());
forward = "succ";
} else {
System.out.println("原密码不符");
System.out.println("@@@@@@@@@@@@@@ "+ changePwdForm.getPwdFail());
changePwdForm.setPwdFail("false");
}
}
6难点页面传值判断回显:
jsp页面获取form中设定的字段,因为没有vo的原因,在action中set需要的字段如:
changePwdForm.setPwdFail("true");
将true传给form中
jsp接受的时候由初始化开始
function init(){
rather('<bean:write name="ChangePwdForm" property="pwdFail" />');//调用rather方法将beanwrite方法从form中获取的值传到rather方法中
}
function rather(flag){
if(flag=="true"){
document.getElementById("cpassword").value="";
alert("修改成功!!");
}else if(flag=="false"){
document.getElementById("cpassword").value="";
alert("旧密码输入不正确!!");
}
}