zoukankan      html  css  js  c++  java
  • SSH整合中,使用父action重构子类action类.(在父类中获取子类中的泛型对象)

    import java.lang.reflect.ParameterizedType;
    import java.lang.reflect.Type;
    
    import com.opensymphony.xwork2.ActionSupport;
    import com.opensymphony.xwork2.ModelDriven;
    
    /**
     * 文件名 : BaseAction.java
     * 提取SSH中的action类
     * 由于SSH的action中采用模型驱动的方法,使用泛型的方式
     */
    public class BaseAction<T> extends ActionSupport implements ModelDriven<T> {
    
        /*
         * 实例化父类对象,提供model
         */
        public BaseAction() {
            // 获取子类中的泛型对象,当创建子类对象时候,会默认使用super()构造父类对象,而此时使用this关键字,指向的是子类的实例.
            Type genericSuperclass = this.getClass().getGenericSuperclass();
            ParameterizedType parameterizedType = (ParameterizedType) genericSuperclass;
            Class<T> clazz = (Class<T>) parameterizedType.getActualTypeArguments()[0];
            try {
                model = clazz.newInstance();
            } catch (InstantiationException | IllegalAccessException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
        //采用模型驱动的方式
        protected T model;
    
        @Override
        /*
         * (提取父类的抽象类的模型代码)
         * 
         * @see com.opensymphony.xwork2.ModelDriven#getModel()
         */
        public T getModel() {
            return model;
        }
        
        /**
         * 后面就可以继续提取子类action的共同的参数和方法了.
         */
    }
  • 相关阅读:
    lsb_release -a 查询Linux系统版本
    html常用标签
    js判断对象是否为空
    springBoot2.x 支持跨域请求配置
    httpclient 上传附件实例
    js 使用sessionStorage总结与实例
    性能测试需求调研分析方法
    jmeter压测实践
    页面加载时调用js函数方法
    IntelliJ IDEA 界面介绍及常用配置
  • 原文地址:https://www.cnblogs.com/wangxinblog/p/7351339.html
Copyright © 2011-2022 走看看