模块管理常规功能自定义系统的设计与实现(08--数据新增[一])

本文探讨了模块管理中数据新增的实现细节,重点介绍了模块记录新增的第一部分。
摘要由CSDN通过智能技术生成

模块的记录新增(一)

视频讲解在线观看:视频讲解链接 http://i.youku.com/jfok1972


        经过了前面的过程,一个模块的grid与form已经设计完成,现在是要加入数据的时候了。对于一个完全靠解释配置文件执行的系统,对数据的查询和新增,修改,删除也必须作到。幸好java中提供了反射的功能,使对于动态的数据能够保存进bean中。
        下面看一下我这系统中新增一条记录的流程。

(图随便画的,大家凑合着看吧。实际新增的过程还要复杂,还有一些步骤没有加入。

       在加入缺省值的时候,4个步骤是顺序执行,最后一步将前三步已经设置的缺省值发到后台取得最终的缺省值。
 
       整个新增处理的核心重点是要根据模块的名称,自动找到相应的hibernate bean,然后反射注入字段值。然后要根据spring的配置找到模块的逻辑处理Logic程序,如果有的话就去执行相应的beforeInsert和afterInsert的函数。由于是解释执行,所有模块的数据的新增都是统一处理的。
        下面的代码是一个模块记录操作处理的接口,任何有需求的模块,只要 implements此interface即可。
package com.jfok.server.logic;

import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.jfok.shared.module.ModuleFormOperateType;
import com.jfok.shared.module.grid.GridFilterData;

/**
 * 每一个模块的新增,修改,删队的处理逻辑
 * 
 * @author jfok 2012.11.14
 * 
 */
public interface IModuleOperateLogic<T> {

	/**
	 * 记录插入之前的操作
	 * 
	 * @param inserted
	 *          要被插入的 hibernate bean
	 * @param errorMessage
	 *          如果不能插入,存放发生错误的字段和错误原因
	 * @param request
	 * @return true 表示可以插入,false 表示不可以插入
	 */
	public boolean beforeInsert(T inserted, Map<String, String> errorMessage,
			HttpServletRequest request);

	public boolean afterInsert(T inserted, HttpServletRequest request);

	/**
	 * 记录修改之前的操作
	 * 
	 * @param type
	 *          修改的类型,有修改,或者审批,审核等
	 * @param updatedObject
	 *          记录修改后的bean
	 * @param oldObject
	 *          记录修改前的bean
	 * @param errorMessage
	 *          如果不能修改,存放发生错误的字段和错误原因
	 * @param request
	 * @return 表示可以修改,false 表示不可以修改
	 */
	public boolean beforeUpdate(ModuleFormOperateType type, T updatedObject, T oldObject,
			Map<String, String> errorMessage, HttpServletRequest request);

	public boolean afterUpdate(ModuleFormOperateType type, T updatedObject, T oldObject,
			HttpServletRequest request);

	public boolean beforeDelete(T deleted, List<String> errorMessage, HttpServletRequest request);

	public boolean afterDelete(T deleted, HttpServletRequest request);

	/**
	 * 取得记录的缺省值
	 * @param request
	 * @param gridFilterData 前台传过来的参数
	 * @return 缺省值字段名和字段值的集合
	 */
	public Map<String, Object> getNewDefultValue(HttpServletRequest request,
			GridFilterData gridFilterData);

}

下面看一下新增的界面,和新增后的结果





至此第一种新增方式成功了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值