⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abstractbaseaction.java

📁 一个webwork+spring+ibatis的小例子
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * 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 + -