public class BaseAction<T> extends ActionSupport implements ModelDriven<T>{
// 1. 封装数据
private T t;
public T getModel(){
return t;
}
// 1.1 实例化 t
public BaseAction(){
try{
// 得到当前运行类的 Class
Class c = this.getClass();
ParameterizedType ptype = (ParameterizedType)c.getGenericSuperclass();
Type[] types = ptype.getActualTypeArguments();
Class<T> clazz = (Class<T>)types[0];
t = clazz.newInstance();
} catch(Exception e){
throw new RuntimeException(e);
}
}
// 2. Spring 注入 service, 多个
// 提供 set 方法, 让 spring 进行注入的;
// 提供 get 方法, 让子类可以获得 spring 注入的对象
private CustomerService customerService;
public void setCustomerService(CustomerService customerService){
this.customerService = customerService;
}
public CustomerService getCustomerService(){
return customerService;
}
// 3. 分页数据
private Integer pageCode = 1; // 第几页
public void setPageCode(Integer pageCode){
if(pageCode == null){
pageCode = 1;
}
this.pageCode = pageCode;
}
public Integer getPageCode(){
return pageCode;
}
private Integer pageSize = 2; // 每页显示数据的条数
public void setPageSize(Integer pageSize){
this.pageSize = pageSize;
}
public Integer getPageSize(){
return pageSize;
}
// 4. 简化值栈操作
public void push(Object obj){
ActionContext.getContext().getValueStack().push(obj);
}
public void set(String key, Object obj){
ActionContext.getContext().getValueStack().set(key,obj);
}
public void put(String key, Object obj){
ActionContext.getContext().put(key,obj);
}
public void putSession(String key, Object obj){
ActionContext.getContext().getSession().put(key,value);
}
public void putApplication(String key, Object obj){
ActionContext.getContext().getApplication().put(key,value);
}
}