StrutsEntityAction 详细分析

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

你可能感兴趣的:(Web,struts,项目管理)