Webwork中获取session信息类的封装

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值