package com.ssh.demo.action;

import java.io.InputStream;
import java.lang.reflect.ParameterizedType;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

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

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.ssh.demo.service.UserService;

@SuppressWarnings("unchecked")
public class BaseAction<T> extends ActionSupport implements RequestAware,
		SessionAware, ApplicationAware, ModelDriven<T> {

	protected T model; // model 有可能为 user,student,teacher等等........
	protected Map<String, Object> jsonMap = null;
	protected List<T> jsonList = null;
	protected InputStream inputStream = null;
	protected Map<String, Object> application;
	protected Map<String, Object> session;
	protected Map<String, Object> request;

	@Resource
	protected UserService userService;
	/**
	 * 通过反射动态的创建对象
	 */
	public BaseAction() {
		ParameterizedType type = (ParameterizedType) this.getClass()
				.getGenericSuperclass();
		Class clazz = (Class) type.getActualTypeArguments()[0];
		try {
			model = (T) clazz.newInstance();
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	@Override
	public T getModel() {
		return model;
	}

	public void setJsonMap(Map<String, Object> jsonMap) {
		this.jsonMap = jsonMap;
	}

	public Map<String, Object> getJsonMap() {
		return jsonMap;
	}

	public List<T> getJsonList() {
		return jsonList;
	}

	public void setJsonList(List<T> jsonList) {
		this.jsonList = jsonList;
	}

	public InputStream getInputStream() {
		return inputStream;
	}

	public void setInputStream(InputStream inputStream) {
		this.inputStream = inputStream;
	}

	@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;
	}
}
最近下载更多
tomjackhys  LV11 2020年6月21日
AndrewLiuFuWen  LV9 2020年5月5日
1690356080  LV37 2020年4月8日
zhangdd  LV10 2019年11月20日
whywhywhy  LV10 2019年10月9日
wxm4252  LV12 2019年9月15日
q1030275646  LV7 2019年4月22日
pubg0206  LV7 2019年3月18日
530413  LV5 2019年3月11日
rzj123456  LV2 2019年3月6日
最近浏览更多
1584435071 6月23日
暂无贡献等级
WBelong  LV8 2023年12月11日
流年不辜  LV9 2022年4月27日
过过成功尺寸  LV7 2021年12月4日
czz123czz  LV1 2021年3月18日
sfyzjc  LV2 2021年1月7日
MARTIN66666  LV1 2020年12月26日
lsglsg9  LV23 2020年12月26日
jachyn  LV6 2020年12月14日
Coincidance  LV8 2020年12月3日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友