为了使我们的struts2的action和具体的web容器无关,我们通常会定义一个BaseAction来操作request和session,其他所有的action类都继承它。

  

package com.lk.action;

import java.util.HashMap;
import java.util.Map;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;

public class BaseAction extends ActionSupport implements SessionAware, RequestAware {
    private static final long serialVersionUID = -7114309242057835186L;
    
    private Map<String, Object> request = new HashMap<String, Object>();
    private Map<String, Object> session = new HashMap<String, Object>();

    @Override
    public void setRequest(Map<String, Object> request) {
        this.request = request;
    }

    @Override
    public void setSession(Map<String, Object> session) {
        this.session = session;
    }
    
    public void setSession(String key, Object value) {
        this.session.put(key, value);
    }
    
    public Object getSession(String key) {
        if(this.session.containsKey(key)) {
            return this.session.get(key);
        }
        return null;
    }
    
    public void setAttribute(String key, Object value) {
        this.request.put(key, value);
    }
    
    public Object getAttribute(String key) {
        if(this.request.containsKey(key)) {
            return this.request.get(key);
        }
        return null;
    }

}

  

posted on 2013-10-20 12:44  寒岁青松  阅读(296)  评论(0)    收藏  举报