📄 abstractbaseaction.java
字号:
/*
* Created on 2005-4-25 Author 泰伯子仪
*
* Copyright (c) 2003-2005 by HodeSoft
* All rights reserved.
*/
package org.sanv.framework.action;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.sanv.framework.component.Pagination;
import org.sanv.framework.model.IIbatisModel;
import org.sanv.framework.service.IIbatisService;
import org.sanv.rbac.model.UserSessionModel;
import com.opensymphony.xwork.ActionContext;
import com.opensymphony.xwork.ActionSupport;
public abstract class AbstractBaseAction extends ActionSupport implements HiddenParameterInf
{
private static Log log;
public IIbatisService ibatisService;
protected IIbatisModel objInfo;
protected IIbatisModel objSearch;
protected Map hiddenParameter;
protected int intInsertID;
protected List objInfoList;
protected Pagination pagination;
protected UserSessionModel userSessionDM;
/**
* 设置是否检测已经存在数据,默认为不检测
*/
protected boolean isUnique = false;
public void setIbatisService(IIbatisService ibatisService)
{
this.ibatisService = ibatisService;
}
/** 子类中必须实现 */
protected abstract void createObjInfo();
protected abstract void createObjSearch();
public AbstractBaseAction()
{
super();
log = LogFactory.getLog(this.getClass());
createObjInfo();
createObjSearch();
pagination = new Pagination();
}
public UserSessionModel getUserSessionDM()
{
if(userSessionDM == null)
{
ActionContext context = ActionContext.getContext();
if(context.getSession() != null)
userSessionDM = (UserSessionModel)context.getSession().get("user");
}
return userSessionDM;
}
public int getIntInsertID()
{
return intInsertID;
}
public Map getHiddenParameter()
{
return hiddenParameter;
}
public void setHiddenParameter(Map hiddenParameter)
{
this.hiddenParameter = hiddenParameter;
}
public IIbatisModel getObjInfo()
{
return objInfo;
}
public void setObjInfo(IIbatisModel objInfo)
{
this.objInfo = objInfo;
}
public IIbatisModel getObjSearch()
{
return objSearch;
}
public void setObjSearch(IIbatisModel objSearch)
{
this.objSearch = objSearch;
}
public boolean getIsUnique()
{
return isUnique;
}
public void setIsUnique(boolean isUnique)
{
log.info("设置isUnique = "+isUnique);
this.isUnique = isUnique;
}
public List getObjInfoList()
{
return objInfoList;
}
public void setObjInfoList(List objInfoList)
{
this.objInfoList = objInfoList;
}
public Pagination getPagination()
{
return pagination;
}
public void setPagination(Pagination pagination)
{
this.pagination = pagination;
}
/**
* 显示添加界面并可以初始化一些数据
*/
public String showAddFrm()
{
log.info("执行showAddFrm() ......");
//校验获取数据的有效性
checkDataBeforeAddFrm();
if (hasActionErrors())
return ERROR;
//初始化添加界面数据
initDataBeforeAddFrm();
if (hasActionErrors())
return ERROR;
return SUCCESS;
}
/**
* 在添加界面出来之前校验获取数据的有效性,通常可由子类实现
*/
protected void checkDataBeforeAddFrm()
{
}
/**
* 在添加界面出来之前初始化添加界面中出现的数据,通常可由子类实现
*/
protected void initDataBeforeAddFrm()
{
}
/**
* 检验数据的合法性并将数据添加到数据库,然后给出反馈信息
*/
public String add()
{
log.info("执行add() ......");
//校验添加数据的有效性
checkDataBeforeAdd();
if (hasActionErrors())
return ERROR;
//校验添加数据的唯一性
checkUniqueBeforeAdd();
if (hasActionErrors())
return ERROR;
//将数据插入数据库
doAddData();
if (hasActionErrors())
return ERROR;
//添加完数据后初始化反馈数据
initDataAfterAdd();
if (hasActionErrors())
return ERROR;
return SUCCESS;
}
/**
* 校验添加数据的有效性,通常可由子类实现
*/
protected void checkDataBeforeAdd()
{
}
/**
* 校验添加数据的唯一性,通常可由子类实现
*/
protected void checkUniqueBeforeAdd()
{
if (isUnique)
{
log.info("执行checkUniqueBeforeAdd(),校验添加数据的唯一性");
if(ibatisService.checkObjectExists(getObjInfo()))
addActionError("您所添加的数据已经存在,请重新输入!");
}
}
/**
* 添加数据到数据库
*/
protected void doAddData()
{
log.info("执行doAddData(),向数据库中添加数据");
ibatisService.insertObject(getObjInfo());
}
/**
* 添加完毕后初始化反馈数据,通常可由子类实现
*/
protected void initDataAfterAdd()
{
}
/**
* 显示编辑界面并可以编辑一些初始化数据
*/
public String showUpdateFrm()
{
log.info("执行showUpdateFrm() ......");
//校验获取数据的有效性
checkDataBeforeUpdateFrm();
if (hasActionErrors())
return ERROR;
//初始化编辑界面数据
initDataBeforeUpdateFrm();
if (hasActionErrors())
return ERROR;
return SUCCESS;
}
/**
* 在编辑界面出来之前校验获取数据的有效性,通常可由子类实现
*/
protected void checkDataBeforeUpdateFrm()
{
}
/**
* 在编辑界面出来之前初始化编辑界面中出现的数据,通常可由子类实现
*/
protected void initDataBeforeUpdateFrm()
{
log.info("执行initDataBeforeUpdateFrm(),在编辑界面出来之前初始化编辑界面中出现的数据");
if(objInfo.getIntID()>0)
objInfo = (IIbatisModel)ibatisService.getObjectInfo(getObjInfo());
else if(objInfo.getIntIDList()!=null)
{
objInfo.setIntID(objInfo.getIntIDList()[0]);
objInfo = (IIbatisModel)ibatisService.getObjectInfo(getObjInfo());
}
}
/**
* 检验数据的合法性并将数据库中的数据更新,然后给出反馈信息
*/
public String update()
{
log.info("执行update() ......");
//校验更新数据的有效性
checkDataBeforeUpdate();
if (hasActionErrors())
return ERROR;
//校验更新数据的唯一性
checkUniqueBeforeUpdate();
if (hasActionErrors())
return ERROR;
//更新数据库中的数据
doUpdateData();
if (hasActionErrors())
return ERROR;
//更新完数据后初始化反馈数据
initDataAfterUpdate();
if (hasActionErrors())
return ERROR;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -