????? webwork开发过程中,获取session中的信息需要实现SessionAware,若session中使用pojo类存放用户信息,需要在Action类中进行处理才能获取用户信息。可以通过下面的方法,简化session信息的获取,并实现灵活的session信息组合。
?
/** * 存放用户session信息POJO类 * @version 1.0 */ public class UserInfo { private int webID; // 帐号ID private int userID; // 用户身份ID private String realName; // 用户姓名 private List permission; // 权限列表 public List getPermission() { return permission; } public void setPermission(List permission) { this.permission = permission; } public String getRealName() { return realName; } public void setRealName(String realName) { this.realName = realName; } public int getUserID() { return userID; } public void setUserID(int userID) { this.userID = userID; } public int getWebID() { return webID; } public void setWebID(int webID) { this.webID = webID; } }
/** * 登录校验成功后,封装用户信息 * @version 1.0 */ public class LoginSubAction extends ActionSupport implements SessionAware{ private Map session; //忽略其他元素 public String execute() throws Exception{ UserInfo userInfo = new UserInfo(); /* * 忽略userInfo信息填充 */ session.clear(); session.put("userInfo", userInfo); return SUCCESS; } public void setSession(Map session) { this.session = session; } //忽略其他get、set方法 }?
** * 获取session信息,根据业务需要进行组合 * @version 1.0 */ public class BasicAction extends ActionSupport implements SessionAware{ private Map session; protected UserInfo userInfo; protected int webID = -1; protected int userID = -1; protected String realName = null; protected List permission = new ArrayList(); // 获取session中用户登录信息 public void getUserInfo(){ if(session!=null || session.get("userInfo")!=null){ this.userInfo = (UserInfo)session.get("userInfo"); } } // 获取公共信息 public void getCommonInfo(){ getUserInfo(); if(userInfo != null){ webID = userInfo.getWebID(); userID = userInfo.getUserID(); realName = userInfo.getRealName(); permission = userInfo.getPermission(); } } // 获取webID public void getWebID(){ getUserInfo(); if(userInfo != null){ webID = userInfo.getWebID(); } } // 获取userID public void getUserID(){ getUserInfo(); if(userInfo != null){ userID = userInfo.getUserID(); } } // 获取realName public void getRealName(){ getUserInfo(); if(userInfo != null){ realName = userInfo.getRealName(); } } // 获取权限 public void getPermission(){ getUserInfo(); if(userInfo != null){ permission = userInfo.getPermission(); } } /* * 其他组合,根据业务需要进行 */ public void setSession(Map session) { this.session = session; } }
?
只需要继承session信息获取类即可使用session信息
/** * 业务逻辑类,根据需要获取session中用户信息 * @version 1.0 */ public class BusinessLogicAction extends BasicAction{ private String information; public String execute() throws Exception{ // 获取全部用户信息,可根据业务需要获取 getCommonInfo(); information = realName+webID+userID+permission; return SUCCESS; } public String getInformation() { return information; } public void setInformation(String information) { this.information = information; } }
?