StrutsEntityAction org.springside.core.web.StrutsEntityAction
public abstract class StrutsEntityAction<T, M extends EntityDao<T>> extends StrutsAction implements InitializingBean {}
第二层封装:负责管理单个Entity CRUD操作的Struts Action基类. 子类以以下方式声明,并实现将拥有默认的CRUD操作
此类仅演示一种封装的方式,大家可按自己的项目习惯进行重新封装 目前封装了:
1.index、list、create、edit、view、save、delete 七种action的流程封装;
2.doListEntity、doGetEntity、doNewEntity、doSaveEntity(),doDeleteEntity五种业务函数调用,可在子类重载;
3.initEntity、initForm两个FormBean与业务对象的初始函数及refrenceData,onInitForm,onInitEntity三个回调函数;
4.savedMessage、deletedMessage 两种业务成功信息,可在子类重载。
/** url参数未定义method时的默认Action函数. 默认为index Action.*/
@Override
public ActionForward unspecified(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
return index(mapping, form, request, response);
}
因为implements了InitializingBean类,所以需要实现方法:afterPropertiesSet --- Init回调函数,初始化一系列泛型参数.
三个回调函数
/**
* form与list界面所需的参考对象注入.如categoryList,在子类重载.
*/
protected void refrenceData(HttpServletRequest request) {
request.setAttribute("disabledField", disabledField);
}
/**
* 显示Form表单时的回调函数.为Form对象添加更多属性,在子类重载.
*/
protected void onInitForm(ActionForm form, HttpServletRequest request,T object) {
request.setAttribute(getEntityName(), object);
}
/**
* 保存Form表单时的回调函数.为业务对象添加更多属性,在子类重载.
*/
protected void onInitEntity(ActionForm form, HttpServletRequest request,T object) {}