近期在一个商务项目中,负责了一个导入的模块开发,从后台模型的设计到最终编码的开发在一定期限内完成,单从Excel导入来说,实现的手段有很多种,例如常用的POI、JXL等等都可以很容易的实现,两者的优缺点可参考http://yuqun888666.blog.163.com/blog/static/79175267200958111628873/
下面说说自己的整个过程,首先设计后台模型,因为商务项目尽量做得灵活、可配置,所以后台模型对属性验证方面采取了可配置的正则验证设计,表之间级联关系采用常用的主外键关联,一方面优化查询,另一方面对于多个字段来说,count(key)相比count(*)优化,综合设计考虑后,后台模型参考以上几点设计要求基本确定完成了。
后台设计完之后,开始处理前台开发,首先和很多Web工程类似,都是左侧通过类似树形菜单,然后在右侧根据配置的超链接,显示相应的模块信息,在Excel文件批量导入中,通过一系列的级联操作、单选切换、自定义选择后,由用户可以动态勾选相应的导入信息,对于一系列操作规范、顺序校验后,动态拼接插入Sql,放到一个事务中,然后执行插入操作,基本流程如此......首先为了用户友好,前台采用Ajax的异步方式,这样在用户导入无论成功与否可以通过回调的方式,即时的给用户响应,如果错误信息,用户可以知道某行某列以及错误的原因等等(并且之前说了这些信息都是配置上的,方便了很多的操作),对于提交操作,由于很多的级联动态信息,所以如果Ajax参数传递方式,参数会有很多变量,所以采用了Ajax Form方式的异步提交,这里使用了Ajax的Form插件,对于回显的时候,由于Tab方式原界面还是保存,界面刷新效果不佳,所以采取的措施是通过弹出层的方式,然后通过动态添加tab,这里弹出层的方式采用了Ajax的一个artDialog插件,下面是两个插件的总结:
一、jQuery Form Plugin 能够让你简洁的将以HTML形式提交的表单升级成采用AJAX技术提交的表单。 插件里面主要 的方法, ajaxForm
和 ajaxSubmit
, 能够从form组件里采集信息确定如何处理表单的提交过程。
例如:在页面中添加一个Form
<form id="myForm" action="comment.action" method="post">
Name: <input type="text" name="name" />
Comment: <textarea name="comment"></textarea>
<input type="submit" value="Submit" />
</form>
引入Jquery和Form Plugin Javascript后,在JS中如下提交方式即可:
<script type="text/javascript">
// wait for the DOM to be loaded
$(document).ready(function() {
// bind 'myForm' and provide a simple callback function
$('#myForm').ajaxForm(function() {
alert("*********");
});
});
</script>
补充:除了ajaxForm、ajaxSubmit方式外,还有formSerialize方法即将表单序列化、fieldSerialize即将Form中部分元素序列化、resetForm表单重置、clearForm清空form等方法...
ajaxForm
和 ajaxSubmit
都支持大量的可选参数,它们通过可选参数项对象传入。可选参数项对象只是一个简单的 JavaScript对象,里边包含了一些属性和一些值:
target
用server端返回的内容更换指定的页面元素的内容。 这个值可以用jQuery 选择器来表示, 或者是一个jQuery 对象, 一个 DOM 元素。缺省值: null
url
表单提交的地址。
缺省值: 表单的action
的值
type
表单提交的方式,'GET' 或 'POST'.
缺省值: 表单的 method
的值 (如果没有指明则认为是 'GET')
beforeSubmit
表单提交前执行的方法。这个可以用在表单提交前的预处理,或表单校验。如果'beforeSubmit'指定的函数返回false,则表单不会被提交。 'beforeSubmit'函数调用时需要3个参数:数组形式的表单数据,jQuery 对象形式的表单对象,可选的用来传递给ajaxForm/ajaxSubmit 的对象。 数组形式的表单数据是下面这样的格式:
[ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
缺省值: null
success
当表单提交后执行的函数。 如果'success' 回调函数被指定,当server端返回对表单提交的响应后,这个方法就会被执行。 responseText 和 responseXML 的值会被传进这个参数 (这个要依赖于dataType的类型).
缺省值: null
dataType
指定服务器响应返回的数据类型。其中之一: null, 'xml', 'script', 或者 'json'. 这个 dataType
选项用来指示你如何去处理server端返回的数据。 这个和 jQuery.httpData
方法直接相对应。 下面就是可以用的选项:
'xml': 如果 dataType == 'xml' 则 server 端返回的数据被当作是 XML 来处理, 这种情况下'success'指定的回调函数会被传进去 responseXML 数据
'json': 如果 dataType == 'json' 则server端返回的数据将会被执行,并传进'success'回调函数
'script': 如果 dataType == 'script' 则server端返回的数据将会在上下文的环境中被执行
缺省值: null
如下例子:
var options = {
target: '#divToUpdate',
url: 'comment.php',
success: function() {
alert('*********');
}
};
$('#myForm').ajaxForm(options);
二、artDialog弹出层插件:artDialog是一个轻巧且高度兼容的javascript对话框组件
优点:
1、自适应内容: 无需预设高宽, 对话框与按钮自适应消息内容的大小
2、文本智能对齐: 如果设置了对话框宽度,短文本居中对齐, 而长文本居左对齐
3、容错能力: 如果定义的宽度高度小于内容大小不会出现错位
4、界面机制: 九宫格布局, 样式钩子与结构丰富, 可定制自适应皮肤
5、跨浏览器支持: 支持 Firefox, Chrome, Safari, IE6+, Opera ..
6、轻巧: 不依赖第三方库, js压缩后10kb左右
7、IE6无抖动静止定位: 在 IE6 下可实现与现代浏览器一样完美无闪动静止定位效果
8、定位修正: 使用自定义坐标的时候智能修正位置, 不会超出边界
9、拖动流畅: 不会粘住鼠标也不会拖出浏览器视口导致无法控制
使用方法:
使用的方式类似Jquery的Dialog,导入JS文件后,在界面中配置下参数如下:
<script>
(function(){
var d = art.dialog.defaults;
d.skin = ['default', 'chrome', 'facebook', 'aero'];
d.drag = true;
d.showTemp = 100000;
})();
</script>
注:在IE7以下版本对于artDialog弹出的对话框会不起作用,解决方法参考http://hi.baidu.com/ferry2004/blog/item/8dd068df58df2f044954039b.html
常用方法如下:
名称
描述
art.dialog.alert(content)
警告 |
art.dialog.confirm(content, yesFn, noFn)
确认 |
art.dialog.prompt(content, yesFn, value)
提问 |
art.dialog.open(url, options)
弹窗(iframe) |
art.dialog.close()
open方法创建的iframe里可用此关闭对话框 |
art.dialog.parent
open方法创建的iframe里可用此获取来源窗口的window对象 |
art.dialog.tips(content, time)
短暂提示 |
art.dialog.load(url, options, cache)
Ajax加载内容 |
art.dialog.get(id, win)
获取指定ID对话框的API. 第一个参数为ID,第二个默认当前window |
分享到:
相关推荐
通过对书中理论知识的学习和实践案例的应用,读者可以迅速掌握Drupal模块开发的核心技能,并能够在自己的项目中发挥重要作用。 总之,《Drupal 7模块开发》这本书不仅提供了丰富的理论知识,更重要的是通过大量的...
项目信息是软件开发项目的基本要素,包括项目名称、项目经理、业主方、开发方、商务协议、技术协议、项目进度情况等信息。这些信息是软件开发项目实施的基础,直接影响着项目的实施和结果。 二、 验收方案 验收...
此部分详细记录了项目中各子系统或模块的功能实现情况,与项目建设方案的功能目标相对照,便于检查项目实施的完整性和准确性。这是评估项目成功与否的核心依据之一。 ### 延期原因与工作量分析 报告中对未按计划...
总结,基于jsp和servlet的电子商务项目源码是一个全面了解Web应用开发的实践平台。通过深入学习和实践,开发者不仅可以掌握这两种核心技术,还能提升对电子商务系统设计的整体理解,为今后的项目开发打下坚实基础。
总结,这个J2EE电子商务项目展示了如何将jsp、servlet和javabean结合,构建一个功能完备、可扩展的电子商务平台,并利用Oracle数据库进行数据管理。通过深入研究此项目,开发者不仅可以提升自己的J2EE技能,还能了解...
总结,电子商务技术开发涉及众多技术层面,从系统设计到业务流程,每个环节都需要精心规划和实施。只有深入了解业务需求,结合前沿技术,才能打造出满足用户需求、适应市场变化的优秀电子商务平台。
总结起来,这是一个基于PHP168框架的开源电子商务平台,具备常见的电商功能,并且为开发者提供了广阔的二次开发空间。开发者可以通过研究这些源代码,学习和理解电子商务网站的架构和实现方式,也可以根据自身需求对...
【电子商务综合业务实训项目开发验收汇报】 本次汇报主要围绕电子商务综合业务实训项目的开发与验收,旨在探讨实训项目的设计思路、实训体系、教学组织与实施、考核方法以及实训效果。实训项目旨在符合电子商务专业...
通过以上各个组成部分,我们可以全面了解一个基于Java的B2C电子商务项目从概念到实施的全过程,学习到如何运用Java及其相关框架构建电子商务系统,同时也能理解在实际开发中可能遇到的问题和解决方案。这对于提升...
总结来说,"ASP.NET模块化动态电子商务网站的开发"项目涵盖了Web开发的多个关键领域,包括模块化设计、数据库交互、用户认证、支付集成、安全性以及后端和前端的实现。通过深入研究这个项目,开发者不仅能提升ASP...
在电子商务项目中,Spring MVC模块常用于构建Web应用的模型-视图-控制器架构。 4. **Hibernate**:Hibernate是一个对象关系映射(ORM)工具,简化了数据库操作,将Java对象与数据库表进行映射,使得开发者可以使用...
总结来说,SimplCommerce是一个利用.NET Core技术构建的优秀电子商务平台,其模块化、跨平台和易用性的特点使其在众多电商系统中脱颖而出。无论你是电商新手还是经验丰富的开发者,SimplCommerce都能为你提供强大的...
ASP.NET模块化动态电子商务网站的开发是一个典型的IT项目,它涉及到多个关键的技术点,涵盖了软件工程的各个环节。本文将深入探讨这个项目所涵盖的核心知识点。 首先,ASP.NET是微软公司推出的一种Web应用程序框架...
在电子商务项目中,Struts 2可以用于处理用户的各种操作,如商品浏览、搜索、添加购物车、结算等。 Hibernate作为持久层框架,负责数据库的操作。它简化了对象-关系映射(ORM),使得开发者可以用Java对象来直接...
9. **项目管理**:了解版本控制工具(如Git),学习如何协作开发,以及如何管理项目文件和代码仓库,这对于团队合作和项目维护至关重要。 10. **用户体验**:电子商务平台不仅需要技术上的完善,还需关注用户体验。...
总结,这个用Java编写的电信电子商务平台项目集成了Java的核心特性、Web开发技术以及安全措施,为用户提供了一个功能完善的在线交易环境。通过学习和分析此项目,我们可以深入理解Java在实际业务场景中的应用,提升...
ASP.NET模块化动态电子商务网站的开发是一个典型的计算机科学与技术领域的毕业设计项目,涉及到的关键技术主要包括ASP.NET框架、模块化设计、数据库管理以及网站交互设计。这个项目旨在创建一个高效、可扩展且易于...
它包括项目经理、项目管理办公室、商务、文档组、软件开发组、安装调试组、系统分析组、系统培训组、质量保证与验收组、技术支持售后服务组等。每个组都有其明确的职责和任务。 项目建设任务可以分为多个阶段,包括...
同时,企业通过开展电子商务项目,能够更好地满足消费者个性化需求,增强客户黏性,从而在激烈的市场竞争中占据优势。 第三章详细阐述了项目整体设计方案,以蕊百本地电子商务为例,该设计可能包括网站架构、用户...
通过总结项目经验,提出遇到的问题及解决方案,报告为后续类似项目提供了参考和借鉴,有助于持续改进项目管理方法和软件开发流程。 综合来看,《软件工程实验报告附系统流程图ER图等》不仅仅是一份实验报告,它更是...