9.代码重构优化

//这个是分页查询的代码优化,每次都有相同的代码可以进行提取

//这个格式排版太烂了吧。。。。。

import java.lang.reflect.ParameterizedType;

import java.lang.reflect.Type;import java.util.HashMap;import java.util.Map;

import org.springframework.data.domain.Page;

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

import com.opensymphony.xwork2.ModelDriven;

/** * 抽取 Action的公共代码 ,简化开发 * *  * */

public abstract class BaseActionextends ActionSupport implementsModelDriven{

// 模型驱动

protected T model;

@Override

public T getModel() {

    return model;

}

// 构造器 完成model实例化

public BaseAction() {

// 构造子类Action对象 ,获取继承父类型的泛型

// AreaAction extends BaseAction

// BaseAction

Type genericSuperclass = this.getClass().getGenericSuperclass();


// 获取类型第一个泛型参数

ParameterizedType parameterizedType = (ParameterizedType) genericSuperclass;

ClassmodelClass = (Class) parameterizedType.getActualTypeArguments()[0];

try {

     model = modelClass.newInstance();

} catch (InstantiationException | IllegalAccessException e) {

    e.printStackTrace();System.out.println("模型构造失败...");

}}

// 接收分页查询参数

   protected int page;

    protected int rows;

  public void setPage(int page) {

    this.page = page;

}

public void setRows(int rows) {

  this.rows = rows;

}

// 将分页查询结果数据,压入值栈的方法

protected void pushPageDataToValueStack(PagepageData) {

    Mapresult = new HashMap();

    result.put("total", pageData.getTotalElements());

    result.put("rows", pageData.getContent());

    ActionContext.getContext().getValueStack().push(result);

}

}

你可能感兴趣的:(9.代码重构优化)