您的位置:首页 > 其它

baseAction

2017-09-25 21:50 190 查看
每个action都用到的存储代码,抽取出来
package org.com.cay.action;

import java.util.Map;

import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionSupport;

public class BaseActions extends ActionSupport implements
RequestAware,SessionAware,ApplicationAware, ModelDriven<T>{
private static final long serialVersionUID = 1L;
protected HttpServletRequest req = ServletActionContext.getRequest();
protected HttpServletResponse response = ServletActionContext.getResponse();
protected Map<String, Object> request;
protected Map<String, Object> session;
protected Map<String, Object> application;
protected T model;

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

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

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

@Override
public T getModel() {
ParameterizedType pt = (ParameterizedType)this.getClass().getGenericSuperclass(); // 获取泛型父类
Class clazz = (Class<T>) pt.getActualTypeArguments()[0]; // 获取第一个参数的真实类型
try {
model = (T)clazz.newInstance();
} catch (Exception e) {
throw new RuntimeException(e);
}
return model;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Action base