📄 passwordbean.java
字号:
package com.jsfabc.jsh.view.bean;
import com.jsfabc.jsh.model.service.UserService;
import javax.faces.context.FacesContext;
import javax.faces.application.FacesMessage;
import com.jsfabc.jsh.model.exception.DbException;
import com.jsfabc.jsh.utils.MessageFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class PasswordBean {
//一个UserBean,用来取得登录用户的信息
private UserBean user;
//用于登录的密码
private String password;
//用于修改密码
private String newPassword;
//用于重输密码
private String pwd;
//用户服务
private UserService userService;
//构造函数
public PasswordBean() {
}
// 密码的取得与设置
public String getPwd() { return pwd; }
public void setPwd(String newValue) {
this.pwd = newValue;
}
// 新密码的取得与设置
public String getNewPassword() { return newPassword; }
public void setNewPassword(String newValue) {
this.newPassword = newValue;
}
// 重输密码的取得与设置
public String getPassword() { return password; }
public void setPassword(String newValue) {
this.password = newValue;
}
//创建日志对象
Log log=LogFactory.getLog(this.getClass());
//依赖注入
public void setUserService(UserService newValue){
this.userService=newValue;
}
//UserBean的注入
public void setUser(UserBean newValue){
this.user=newValue;
}
//用户改变自己的密码
public String alterPasswordAction(){
//取得faces上下文
FacesContext facesContext= FacesContext.getCurrentInstance();
//处理输入的两次新密码不同的情况
if(!(newPassword.equals(pwd))){
//声明一个两次输入的密码不相同的消息
FacesMessage msg = new FacesMessage();
msg.setSummary("两次输入的新密码不相同。");
msg.setDetail("两次输入的新密码不相同。");
//为了与原来例子保持一致,这里设置了消息的严重等级
msg.setSeverity(FacesMessage.SEVERITY_WARN);
//将消息保存在facesContext中,供其他过程使用
facesContext.addMessage(null,msg);
//返回loginAction方法的结果,
//该结果是一个字符串,用于与导航规则比较,导航到登录失败后的页面
return "failure";
}
//取旧密码
String oldPassword=user.getPassword();
//处理旧密码输入不正确的情况
if(!(oldPassword.equals(password))){
FacesMessage msg = new FacesMessage();
msg.setSummary("旧密码不正确。");
msg.setDetail("旧密码不正确。");
//为了与原来例子保持一致,这里设置了消息的严重等级
msg.setSeverity(FacesMessage.SEVERITY_WARN);
//将消息保存在facesContext中,供其他过程使用
facesContext.addMessage(null,msg);
//返回loginAction方法的结果,
//该结果是一个字符串,用于与导航规则比较,导航到登录失败后的页面
return "failure";
}
try{
//取得用户的人员标识
String personId=user.getUserName();
userService.updatePassword(personId,newPassword);
return "success";
}
catch(DbException de){
//捕获DbException异常
FacesMessage msg=MessageFactory.getMessage
(facesContext,"error_database_error","");
msg.setSeverity(FacesMessage.SEVERITY_WARN);
facesContext.addMessage(null,msg);
return "failure";
}
catch(Exception e){
//捕获其他异常
FacesMessage msg=MessageFactory.getMessage
(facesContext,"error_unexpected","");
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
facesContext.addMessage(null,msg);
return "failure";
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -