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;
}
}