Struts2 中典型CRUD Action的抽象基类.

/**
* Struts2中典型CRUD Action的抽象基类.
*
* 主要定义了对Preparable,ModelDriven接口的使用,以及CRUD函数和返回值的命名.
*
* @param <T> CRUDAction所管理的对象类型.
*
* @author calvin
*/
public abstract class CrudActionSupport<T> extends ActionSupport {

private static final long serialVersionUID = -1653204626115064950L;

/** 进行增删改操作后,以redirect方式重新打开action默认页的result名.*/
public static final String RELOAD = "reload";

protected Logger logger = LoggerFactory.getLogger(getClass());

/**
* Action函数, 默认的action函数, 默认调用list()函数.
*/
@Override
public String execute() throws Exception {
return list();
}

//-- CRUD Action函数 --//
/**
* Action函数,显示Entity列表界面.
* 建议return SUCCESS.
*/
public abstract String list() throws Exception;

/**
* Action函数,显示新增或修改Entity界面.
* 建议return INPUT.
*/
@Override
public abstract String input() throws Exception;

/**
* Action函数,新增或修改Entity.
* 建议return RELOAD.
*/
public abstract String save() throws Exception;

/**
* Action函数,删除Entity.
* 建议return RELOAD.
*/
public abstract String delete() throws Exception;

//-- Preparable函数 --//
/**
* 实现空的prepare()函数,屏蔽了所有Action函数都会执行的公共的二次绑定.
*/
public void prepare() throws Exception {
}

/**
* 定义在input()前执行二次绑定.
*/
public void prepareInput() throws Exception {
prepareModel();
}

/**
* 定义在save()前执行二次绑定.
*/
public void prepareSave() throws Exception {
prepareModel();
}

/**
* 等同于prepare()的内部函数,供prepardMethodName()函数调用.
*/
protected abstract void prepareModel() throws Exception;
}

猜你喜欢

转载自suyalijava.iteye.com/blog/1677508