批改密码在什么地方做
修改密码在什么地方做
做网站登录系统:
做了登录后可表示的设定页面,里面有修改密码功能,写修改密码时是在AccountService里写,还是在设定页面下面写。
请教(例如同样密码才可以修改。。。),请教
------解决方案--------------------
写业务逻辑 在service或action中 写 都可以啊
做网站登录系统:
做了登录后可表示的设定页面,里面有修改密码功能,写修改密码时是在AccountService里写,还是在设定页面下面写。
请教(例如同样密码才可以修改。。。),请教
------解决方案--------------------
写业务逻辑 在service或action中 写 都可以啊
- Java code
/** * 修改密码 * @return */ @Action(value="modifyPassword",results={@Result(name="modifyFail",location="/system/user/user-modifyPassword.jsp"), @Result(name="modifySuccess",location="/system/index.jsp")}) public String modifyPassword(){ String message = ""; try{ if(txtoldPasswd==null || txtoldPasswd.equals("")){ message = "您输入的旧密码为空!"; throw new Exception(message); }else if(txtnewPasswd==null || txtnewPasswd.equals("")){ message = "您输入的新密码为空!"; throw new Exception(message); }else if(txtrepeatpassword==null || txtrepeatpassword.equals("")){ message = "您输入的重复密码为空!"; throw new Exception(message); }else if(!txtnewPasswd.equals(txtrepeatpassword)){ message = "您输入的两次新密码不一致!"; throw new Exception(message); } }catch (Exception e) { addActionMessage(message); logger.error(message); return "modifyPassword"; } try { //首先判断用户的旧密码是否正确 User user = (User)Struts2Utils.getSession().getAttribute("loginuser"); if(!user.getPassword().equals(txtoldPasswd)){ addActionMessage("抱歉,您输入的旧密码错误!"); return "modifyPassword"; }else{ //然后修改密码 user.setPassword(txtrepeatpassword); securityEntityManager.saveUser(user); Struts2Utils.getResponse().getWriter().print("<script>top.location.href='" + contextPvd.getAppCxtPath() + "/login!goIndex.action'</script>"); return null; } } catch (Exception e) { addActionMessage("密码修改失败!"); logger.error("密码修改失败!{}",e.getMessage()); } return "modifyPassword"; }
------解决方案--------------------
Changes page
- Java code
public Navigation run() throws Exception { Account ac = sessionScope("account"); System.out.println("Key:" + ac.getKey()); Account stored = service.get(ac.getId()); System.out.println("Key:" + stored.getKey()); Account ac2 = new Account(); BeanUtil.copy(request, ac2); stored.setName(ac2.getName()); stored.setPassword(ac2.getPassword()); System.out.println("Paass:" + ac2.getPassword()); if (service.update(stored)) { return forward("..."); } else { return forward("..."); } }