亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? abstractcrudaction.java

?? easyweb的使用
?? JAVA
字號:
package com.easyjf.web.tools;

import java.lang.reflect.Method;

import com.easyjf.util.CommUtil;
import com.easyjf.web.Globals;
import com.easyjf.web.IWebAction;
import com.easyjf.web.Module;
import com.easyjf.web.Page;
import com.easyjf.web.WebForm;

/**
 * 
 * <p>
 * Title: 通過添刪改查(CRUD)處理Action類
 * </p>
 * <p>
 * Description: 處理普通數據表的添刪改查(CRUD)處理的抽象類,用戶只需繼承該Action,并根據自身的情況實現其中的模板方法即可。
 * 該抽象類除了提供了一些固定的系統命令以外,還提供了CmdAction的功能,也即要使用系統外命令的時候,如XX直接使用doXX(WebForm form, Module module)即可。
 * </p>
 * <p>
 * Copyright: Copyright (c) 2006
 * </p>
 * <p>
 * Company: www.easyjf.com
 * </p>
 * 
 * @author 蔡世友
 * @version 1.0
 */
public abstract class AbstractCrudAction implements ICommCRUDAction, IWebAction {
	private String command;

	/**
	 * 系統命令,包括new、edit、add、save、update、del、list、query以及null等都是EasyJWeb
	 * Tools中經常用到的系統命令,執行與命令有關的操作
	 */
	private static final String systemCommand = "new,edit,add,save,update,del,list,query,";

	private IDAO dao;

	public Page execute(WebForm form, Module module) throws Exception {
		String method = CommUtil.null2String(form.get("easyJWebCommand"));
		this.command = method;
		Object beforeCheck = doBefore(form, module); // 模版方法
		if (beforeCheck != null) {
			// 如果Action執行前檢查,返回Page則直接跳轉
			if (beforeCheck.getClass() == Page.class)
				return (Page) beforeCheck;
		}
		IActiveUser user = (IActiveUser) getCurrentUser(form);
		Page forward = null;
		doInit(form, module);
		if (dao == null) {// 自動加載數據操作dao對象
			dao = autoLoadDAO(module);
		}
		if ("new".equals(method)) {// new命令直接返回
			forward = doNew(form, module, user);
		} else if ("edit".equals(method)) {
			forward = doEdit(form, module, user);
		} else if ("add".equals(method) || "save".equals(method)) {// save或add命令執行同樣的功能
			forward = doAdd(form, module, user);
		} else if ("update".equals(method)) {
			forward = doUpdate(form, module, user);
		} else if ("del".equals(method)) {
			forward = doDel(form, module, user);
		} else if ("".equals(method) || "list".equals(method)
				|| "query".equals(method)) {
			forward = doQuery(form, module, user);
		} else// 其它命令直接調用doCommand方法
		{
			Class[] paras = new Class[2];
			paras[0] = WebForm.class;
			paras[1] = Module.class;
			String cmd = "do" + method.substring(0, 1).toUpperCase()
					+ method.substring(1);
			Method m = this.getClass().getMethod(cmd, paras);
			if (m != null) {
				Object[] objs = new Object[2];
				objs[0] = form;
				objs[1] = module;
				Object ret = m.invoke(this, objs);
				if (ret instanceof Page)
					forward = (Page) ret;
			} else
				throw new Exception("方法名稱不正確,在" + this.getClass() + "中找不到"
						+ cmd + "方法!請確認您頁面中的easyJWebCommand參數值是否正確!");
		}
		doAfter(form, module);
		return forward;
	}

	/**
	 * 執行編輯命令,根據用戶主鍵取得PO,然后返回編輯界面
	 */
	public Page doNew(WebForm form, Module module, IActiveUser user) {
		return crudPage(form,module,"edit");
	}

	/**
	 * 執行add命令,保存到數據庫
	 */
	public Page doAdd(WebForm form, Module module, IActiveUser user) {
		Page forward = null;
		Object obj = form2Obj(form);
		if (obj == null) {
			form.addResult("msg", "無法創建要保存的對象,添加失敗!");
			return crudPage(form,module,"edit");
		}

		if (dao.save(obj)) {
			form.addResult("msg", "數據添加成功!");
			forward = doQuery(form, module, user);
		} else {
			form.addResult("msg", "數據添加失敗");
			forward = crudPage(form,module,"edit");
		}
		return forward;
	}

	public Page doUpdate(WebForm form, Module module, IActiveUser user) {
		Page forward = null;
		Object obj = form2Obj(form);
		if (dao.update(obj)) {
			form.addResult("msg", "數據修改成功!");
			forward = doQuery(form, module, user);
		} else {
			form.addResult("msg", "數據修改失敗");
			forward = crudPage(form,module,"edit");
		}
		return forward;
	}

	/**
	 * 執行編輯命令,根據用戶主鍵取得PO,然后返回編輯界面
	 */
	public Page doEdit(WebForm form, Module module, IActiveUser user) {
		Page forward = null;
		Object obj = form2Obj(form);
		if (obj != null) {
			CommUtil.Obj2Map(obj, form.getTextElement());
			forward = crudPage(form,module,"edit");
		} else {
			form.addResult("msg", "找不到數據!");
			forward = doQuery(form, module, user);
		}
		return forward;
	}

	/**
	 * 執行del命令,通過dao對象刪除持久層中的數據
	 */
	public Page doDel(WebForm form, Module module, IActiveUser user) {

		Object obj = form2Obj(form);
		if (dao.del(obj)) {
			form.addResult("msg", "數據刪除成功!");
		} else {
			form.addResult("msg", "數據修改失敗");
		}
		return doQuery(form, module, user);
	}

	/**
	 * 執行list、query或null(空)命令,調用分頁引擎實現數據分頁查詢
	 */
	public Page doQuery(WebForm form, Module module, IActiveUser user) {
		int currentPage = CommUtil.null2Int(form.get("page"));
		int pageSize = CommUtil.null2Int(form.get("pageSize"));
		if (currentPage < 1)
			currentPage = 1;
		if (pageSize < 1)
			pageSize = 15;
		IPageList pList = doQuery(form, currentPage, pageSize);// 調用模板方法執行數據查詢
		// 保存查詢結果
		if (pList != null) {
			form.addResult("list", pList.getResult());
			form.addResult("pages", new Integer(pList.getPages()));
			form.addResult("rows", new Integer(pList.getRowCount()));
			form.addResult("page", new Integer(pList.getCurrentPage()));
			form.addResult("gotoPageHTML", CommUtil.showPageHtml(pList
					.getCurrentPage(), pList.getPages()));
		}
		return crudPage(form,module,"list");
	}

	public String getCommand() {
		return command;
	}

	public void setCommand(String command) {
		this.command = command;
	}

	public boolean isSystemCommand() {
		boolean ret = false;
		if ("".equals(this.command) || systemCommand.indexOf(this.command) >= 0)
			ret = true;
		return ret;
	}
    protected Page crudPage(WebForm form,Module module,String name)
    {
    	Page ret=module.findPage(name);    	
    	if(ret==null)
    	{
    		Object obj=this.form2Obj(form);
    		if(obj!=null){
    		String className=obj.getClass().getName();
    		String objName=className.substring(className.lastIndexOf('.')+1);
    		if("edit".equals(name))
    		{   			
    			ret=new Page(objName+"Edit","/"+objName+"Edit.html",Globals.PAGE_TEMPLATE_TYPE);
    		}
    		else if ("list".equals(name))
    		{
    			ret=new Page(objName+"List","/"+objName+"List.html",Globals.PAGE_TEMPLATE_TYPE);
    		}}
    	}    	
    	return ret;
    }
	
	/**
	 * 自動加載DAO對象來負責執行數據庫操作,此處需要修改根據module的配置或全局配置來決定使用具體的DAO類,當然也要以通過IOC來進行控制
	 * 
	 * @param module
	 * @return
	 */
	protected IDAO autoLoadDAO(Module module) {
		return EasyDBODAO.getInstance();
	}

	public IDAO getDao() {
		return dao;
	}

	/**
	 * 設置模塊的數據庫操作類dao
	 * 
	 * @param dao
	 */
	public void setDao(IDAO dao) {
		this.dao = dao;
	}

	/**
	 * 根據form中的查詢參數,執行具體的查詢操作
	 * 
	 * @param form
	 * @param currentPage
	 * @param pageSize
	 * @return
	 */
	public abstract IPageList doQuery(WebForm form, int currentPage,
			int pageSize);

	/**
	 * 執行初始化操作
	 * 
	 * @param form
	 * @param module
	 */
	public abstract void doInit(WebForm form, Module module);// 初始化數據,如表單項及默認值等

	/**
	 * 返回當前操作的用戶
	 * 
	 * @param form
	 * @return
	 */
	public abstract IActiveUser getCurrentUser(WebForm form);// 取得用戶

	/**
	 * 在doCommand命令之前執行,可用于實現通用簡單的攔截
	 * 
	 * @param form
	 * @param module
	 * @return
	 */
	public abstract Object doBefore(WebForm form, Module module);// Action前置校驗

	/**
	 * 在doCommand命令之后執行,可用于作一些數據清理
	 * 
	 * @param form
	 * @param module
	 */
	public abstract void doAfter(WebForm form, Module module);// Action后置處理

	/**
	 * 把form中的數據轉換成實際的java對象,視圖對象View Object(VO)-程序對象Program Object(PO)
	 * 
	 * @param form
	 * @return
	 */
	public abstract Object form2Obj(WebForm form);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩三级在线免费观看| 国产精品自在欧美一区| 成人免费在线视频| 中文字幕一区视频| 国产精品传媒视频| 亚洲精品久久嫩草网站秘色| 亚洲黄色av一区| 亚洲黄色尤物视频| 一级女性全黄久久生活片免费| 亚洲视频你懂的| 又紧又大又爽精品一区二区| 亚洲香蕉伊在人在线观| 丝袜脚交一区二区| 精品一区二区三区在线播放| 国产精品99久久久久| 粉嫩高潮美女一区二区三区| a4yy欧美一区二区三区| 欧美三级视频在线观看| 精品日韩av一区二区| 国产欧美日韩综合精品一区二区| 中文字幕第一区| 亚洲资源中文字幕| 久久国产精品一区二区| 高清不卡一二三区| 欧美日免费三级在线| 日韩免费一区二区| 国产精品福利一区二区三区| 伊人色综合久久天天人手人婷| 天使萌一区二区三区免费观看| 久久69国产一区二区蜜臀| 成人高清免费在线播放| 欧美午夜电影在线播放| 精品国产凹凸成av人导航| 中文字幕一区三区| 美女脱光内衣内裤视频久久网站 | 色哟哟亚洲精品| 4438成人网| 国产精品国产三级国产普通话99| 亚洲成人av中文| 成人福利视频在线看| 欧美一卡在线观看| 亚洲色图都市小说| 国产做a爰片久久毛片| 91啪九色porn原创视频在线观看| 91精品国产福利| 亚洲激情网站免费观看| 国产美女av一区二区三区| 欧美日韩日本视频| 国产精品福利一区二区| 国产自产高清不卡| 欧美一区欧美二区| 一区二区三区精品在线| 成人中文字幕合集| 精品国产亚洲在线| 日韩av在线播放中文字幕| av电影在线不卡| 国产日韩综合av| 九九九精品视频| 4hu四虎永久在线影院成人| 一区二区三区国产精品| 成人av午夜电影| 国产午夜精品一区二区三区嫩草| 免费在线观看视频一区| 欧美视频第二页| 亚洲精品国产精华液| www.亚洲色图.com| 日本一区二区不卡视频| 国产一区二区毛片| 久久精品一级爱片| 国产在线精品不卡| 精品av久久707| 激情欧美一区二区三区在线观看| 91精品国产综合久久福利 | 裸体健美xxxx欧美裸体表演| 欧美亚洲免费在线一区| 一区二区三区电影在线播| 91丝袜国产在线播放| |精品福利一区二区三区| 懂色av一区二区三区免费看| 国产午夜精品美女毛片视频| 国产激情视频一区二区在线观看| 欧美成人在线直播| 精品中文字幕一区二区| 久久中文字幕电影| 国产福利不卡视频| 欧美激情在线观看视频免费| 成人av网址在线| 亚洲精品高清在线| 欧美日韩三级一区| 久久国产精品无码网站| 国产午夜精品一区二区三区四区| 成人丝袜视频网| 亚洲欧美国产77777| 欧美视频中文字幕| 免费观看一级特黄欧美大片| 精品理论电影在线观看| 丁香天五香天堂综合| 亚洲女同女同女同女同女同69| 欧美视频一区二区三区在线观看| 日韩成人午夜精品| 久久精品视频网| 在线视频国产一区| 日韩成人免费在线| 国产精品美女久久久久久| 99精品1区2区| 日本一不卡视频| 国产午夜亚洲精品羞羞网站| 91色.com| 国产一区高清在线| 中文字幕五月欧美| 日韩一区二区麻豆国产| jizz一区二区| 美女网站在线免费欧美精品| 亚洲欧洲成人精品av97| 日韩视频一区二区三区| 99久久er热在这里只有精品66| 午夜电影久久久| 国产精品毛片a∨一区二区三区| 欧美日韩国产乱码电影| 国产a精品视频| 日韩中文字幕麻豆| 中文字幕在线一区二区三区| 欧美一区二区在线看| 99久久精品免费精品国产| 美女视频黄a大片欧美| 亚洲蜜臀av乱码久久精品| 久久综合国产精品| 777亚洲妇女| 91久久精品一区二区二区| 国产一区二区视频在线播放| 亚洲chinese男男1069| 欧美经典一区二区| 日韩视频在线一区二区| 欧美无砖专区一中文字| 94-欧美-setu| 国产98色在线|日韩| 精品无人区卡一卡二卡三乱码免费卡 | 欧美日韩和欧美的一区二区| 99久久久精品| 成人爱爱电影网址| 国产精品538一区二区在线| 蜜臀精品一区二区三区在线观看| 亚洲四区在线观看| 一色屋精品亚洲香蕉网站| 国产日产欧美一区| 久久久国际精品| 久久久精品国产免费观看同学| 日韩欧美电影在线| 日韩三级高清在线| 日韩欧美激情四射| 日韩精品一区二区三区在线| 欧美一二三区在线观看| 欧美一区二区三区成人| 欧美一区二区女人| 日韩欧美中文字幕一区| 欧美一区中文字幕| 欧美一级夜夜爽| 精品国产露脸精彩对白| 2023国产精品视频| 久久夜色精品国产噜噜av| 久久精品视频网| 国产精品国产三级国产| 亚洲黄色免费电影| 午夜精品视频一区| 美女爽到高潮91| 岛国精品一区二区| 99re免费视频精品全部| 91久久精品网| 91精品国产综合久久久久久久久久| 欧美肥妇free| 精品国产乱码久久久久久蜜臀| 久久久精品影视| 亚洲女人的天堂| 蜜臀av一区二区| 国产激情偷乱视频一区二区三区| 波多野结衣一区二区三区 | 日韩欧美另类在线| 精品国产99国产精品| 国产日产欧美一区二区视频| 亚洲欧美国产77777| 日本亚洲一区二区| 国产精品亚洲成人| 91成人免费网站| 欧美成人三级电影在线| 亚洲色图第一区| 久久99国产乱子伦精品免费| 不卡的av电影| 日韩一区二区在线看片| 国产精品每日更新| 青草国产精品久久久久久| 高清成人在线观看| 欧美高清一级片在线| 国产视频一区二区在线| 夜夜嗨av一区二区三区四季av| 麻豆成人在线观看| 色综合婷婷久久| 欧美精品一区二区高清在线观看| 亚洲女同ⅹxx女同tv| 国产精品一区二区你懂的| 欧美三级视频在线观看|