Fork me on GitHub

BaseAction 类

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

posted @ 2017-10-27 12:58  小a的软件思考  阅读(458)  评论(0编辑  收藏  举报