- 浏览: 191892 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
chmadmin:
求源码,参考下
Extjs做的一个图书管理系统(详细解析) -
wilddonkey:
lz,我现在自定义了转换器,但是如果输入为空,则自动跳过,虽然 ...
struts2-ognl.MethodFailedException: Method "setId" failed for object -
accpchf:
/** * 懒汉式, * 既有延迟加载功能又能保证线程安全, ...
J2EE面试题集锦(附答案) -
accpchf:
java编程第三题明显错误 A ab = new B(); ...
J2EE面试题集锦(附答案) -
风雨故都:
求源码。参考一下
Extjs做的一个图书管理系统(详细解析)
本系统实质上是由Extjs做的一个网站。主要功能有: 一、登陆页面 由一个登录框、一个flash和一些文字构成 二、主界面 可以看到,主界面的结构如下: 上方:左边是一张图片,右边有一个注销链接和一个关于作者的链接,还显示了当前时间, 这是用javascript实现的 左边:导航栏,用ext里的accordion和treePanel实现的,这里的数据用dwr传过来的, 是直接在java文件里面生成的,主要的权限控制也是在这里实现的。因为这里会根据 用户的不同身份生成不同的数据,包括链接地址。最下边的那个更换皮肤是利用ext 的换肤功能实现的。我只是照抄。 右边:这里是显示和操作主要地方。 三、编程环境 1、 Eclipse 3.3.2(带tomcat插件) 2、 Tomcat6.0 3、 JDK1.6.0_16 4、 mySQL5.1 5、 Extjs2.3 6、 DWR 7、 Struts2.0.14 8、 Spring2.0 9、 Hibernate3.3.2.GA 四、代码目录 new Ext.Button({ text : '保存 ', iconCls:'save', clearCls:'allow-float',//允许浮动 itemCls:'float-left',//向左浮动 handler : function() { if (add_form.form.isValid()) { add_form.form.submit({ url : 'add_reader.do',//提交到服务器 success : function(from, action) { Ext.get('theDiv').remove(); document.getElementById("submitResult").innerHTML= '<br/><br/><br/><br/><br/><div style="margin:10px;font-size:25px;">' + '新读者信息保存成功!</div>'; }, failure : function(form, action) { Ext.MessageBox.show({ title:"保存失败", msg:"保存失败!请认真检查您填入的信息<br/>如果问题仍然存在请联系网站维护人员", icon:Ext.MessageBox.ERROR, buttons:{"ok":"确定"} }); }, waitMsg : '正在保存数据,请耐心等候...' }); // dialog.hide(); } else { Ext.MessageBox.show({ title:"警告", msg:"请填写完登录信息再提交!", icon:Ext.MessageBox.WARNING, buttons:{"ok":"确定"} }); } } }) 然后后台用struts2来接收。 上面这个是第一种ext数据提交方式,还有几种,下面给出(就只给出我试验过的,还有其它的方式,有兴趣的读者可以自己去研究) 1)用jsonStore var bookStore = new Ext.data.JsonStore({ url:"get_book.do",//不带参数:搜索所有的书籍 totalProperty: 'totalCount', pruneModifiedRecords:true, root: 'result', fields:["bookId","bookName","author","price","press","category","releaseTime"] }); bookStore.load({ params:{ start:0, limit:5 } }); 不过这种方式请求数据,我有时候成功,有时候就怎么搞都搞不成 2)Ext.Ajax.request请求数据。这个比较可靠 Ext.Ajax.request({ url:'get1_reader.do',//这里 method:'post', success:function(response,options){ var results = Ext.util.JSON.decode(response.responseText); var record = results.result[0]; alert(record.readerName); 3) dwr的方式。就是用dwr调用dao文件,在dao文件里面实现数据库的调用。但这种方式去请求数据我试了好几次好像不行。希望读者朋友们自己能去试试,如果可以的话把结果告诉我,谢谢!!!。 这里还要讲到的,很重要的一点是ext提供的数据自动验证功能(很强大的功能哦)。 右边是一个更有用的应用这是普通读者修改自己信息时的操作,如果输入的密码不是原密码,则用红线画出来,提交就不能成功。呵呵,这就不用再跳到action中做验证再返回来了。具体实现代码如下 。 首先进入这个页面的时候就发起了一上ajax请求,取得了相关的数据。用的是Ext.Ajax.request。再用 Ext.apply(Ext.form.VTypes,{ oriPsw:function(value){ if(value==record.readerPsw){ return true; }else{ return false; } } }); 然后在组件中加上下面两句就可以了,简单吧! vtype:"oriPsw",
vtypeText:"原始密码不正确,请重新输入", Ext.apply(Ext.form.VTypes,{……………………})是自定义的验证函数,加上vtype:"oriPsw"后组件就会自动调用这里面的函数来验证。
还有,这里的验证一般都采用正则表达式来做条件匹配。下面给出几个例子 Ext.apply(Ext.form.VTypes,{ priceTest:function(value){ //这个验证的是float型的数据 if(/^(-|\+)?\d+(\.\d+)?$/.test(value)){ return true; }else{ return false; } }, idTest:function(value){ if(/^\d+$/.test(value)){//这个验证只允许填入数字 return true; }else{ return false; } }, yearTest:function(value){ if(/\d{4}$/.test(value)){ //这个验证只允许填入四位数字 return true; }else{ return false; } } }); 这些正则表达式都比较简单,想要了解更多的正则表达式的相关知识,可以读一读我写的另一篇文章《正则表达式》,里面简单地介绍了正则表达式的基础知识和常见应用。 2、修改读者信息 可以看到界面分上下两栏。上面这一栏是用来查找读者的。有七个文本框,这些文本框都是选填的,你可以选一个或几个信息来定位一个或几个符合条件的读者。这一个的实现还要谢谢肖波提供的蓝杰任务管理系统,这一个模式是借鉴他的。这里搜索到的信息可以在下面的这个表格中显示出来。当还没进行搜索时,这个表格里面显示的是所有的读者,分布显示的,每页五条,这利用了ext提供的强大的分布功能!!还有那个刷新按钮,可以刷新表格里面的数据。 双击表格中的某一条数据可以进行编辑,界面如下 修改完信息点击保存按钮就可以提交到数据库中去。这里的逻辑和上面那个一样,也是用一个按钮内handler指定的函数提交的。 六、图书信息 1、添加书本信息 上面 的“书的类别”一项,里面的数据是从数据库中直接加载过来的。点击即加载,这是用Ext.data.JsonStore实现的。相应组件如下 new Ext.form.ComboBox({ fieldLabel:"书的类别", id:"category", labelStyle:"text-align:right", editable:false,//既能选择又能输入 allowBlank : false, emptyText:"请选择书的类别", width:(window.screen.width-300)*0.2, store:new Ext.data.JsonStore({ //用json方式获得所有的类别名 url:'get_category.do', totalProperty:'totalCount', root:'result', fields:["category"] }), valueField:'category', displayField:'category', triggerAction:"all"//每次选中一项,之后再选也会将所有列表显示出来。 }) 2、修改书本信息 七、借书管理 1、借书登记
一共有五栏,第一栏选读者,第二栏可以展开,用来搜索特定的读者,第三栏选择一本要借的书,第四栏可以展开,用来搜索特定的书,第五栏要求借书者给出一个具体的归还日期,以便别人再借。点击提交即可完成借书信息的填写,方便吧! 2、修改登记 不多说,和之前的那几个原理一样,双击也可以编辑。 八、还书管理 选择一本,点击还书即可。 九、图书查询 喔,这个是之前的。后来改的如下。加入了是否在馆等信息 十、新书资讯 这里面列出了最新(也就是最后加入)的五本书的详细信息。 其中的数据处理逻辑比较复杂,有兴趣的朋友可以看看我的原代码,不过我用的算法可能很烂,还望指教!!! 十一、建议买的书 这一模块的设计是为了让读者等能推荐一些好书,充实公司的书库。 在下面的空格中填入相应的信息之后点击“加入”就可以把信息添加到数据库,同时 更新上面表格中的信息。管理员可以定时地查看这一项,以参考该买些什么书。 十二、读者信息管理 1、查看和修改个人信息 (上面的这个电话号码不是我的,随便输的) 2、 查看个人已借图书 3、 读者图书查询 界面和前面管理员的那个差不多,不多累赘。
好了,介绍到此为止。谢谢阅读。
1、 添加和修改读者信息
2、 添加和修改图书信息
3、 添加和修改图书借阅信息
4、 还书管理
5、 图书查询
6、 新书资讯
7、 提议买书
8、 读者个人信息查看
9、 读者借还历史查看
10、 页面皮肤更换
其中大部分页面都有图书迅速查询模块,使用者可以多条件自由查询自己想要的信息,这里面的逻辑和算法有的比较复杂。
本项目最难部分有:ajax异步数据交互,Extjs写界面,数据库操作(包括模糊查询),spring + Hibernate + struts2整合extjs和DWR。项目中主要有两大角色,Admin管理员和reader读者。两者的权限控制我采用了一种特殊的方式,只是这一种方式不是到处都适用的,下面会讲到。这里面的页面都是html,没有jsp,因为大部分功能都在js里面实现的。
如果,确认密码和读者密码不一样的话这里会用红色波浪线画册出来,鼠标放上去还会显示出提示内容。呵呵,有一个问题,就是提示字体大小不一样,不知道怎么搞的。
上面是用来查询的,下面是用来显示相应的信息。原理和第一个的差不多
评论
发表评论
-
java版RC4加密解密算法
2010-10-25 11:01 3766我们的一个项目,需要解析一个用户提供的rc4加密后的文件,特 ... -
JAVA7新特性
2010-09-30 14:38 990Java7新特性 1.运行速度提高了,这个得益于Java7采用 ... -
Java Web开发(JSP、Servlet)乱码终极解决方案
2010-09-30 08:40 1478千万不要看网上那些杂七杂八的解决乱码的文章,解决乱 ... -
马士兵struts2学习笔记(详细版)
2010-09-29 15:57 171515、23_尚学堂马士兵_Struts2_模块包含 ... -
JAVA华为面试题
2010-09-29 15:49 3625这是华为Java的主要面试题目宝典。。。。真的是很有用。。。我 ... -
JVM学习笔记(四)------内存调优
2010-09-29 11:19 938首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别J ... -
JVM学习笔记(三)------内存管理和垃圾回收
2010-09-29 11:15 813JVM内存组成结构 JVM栈 ... -
JVM学习笔记(二)------Java代码编译和执行的整个过程
2010-09-29 11:10 1030Java代码编译是由Java源码编译器来完成,流程图 ... -
JVM学习笔记(一)------基本结构
2010-09-29 11:04 841从Java平台的逻辑结构上来看,我们可以从下图来了解JVM: ... -
Java调用外部exe程序方法
2010-09-29 09:20 1134用java调用外部.exe程序的方法: public ... -
EXT+DWR+SPRING+IBATIS+ORACLE分页显示+模糊查询
2010-09-28 13:14 2079EXT代码: Ext.onReady(fun ... -
Java编程把Word转Pdf
2010-09-28 08:42 2138我的word转pdf用到了一个虚拟的打印机,安装一个Adobe ... -
利用JSP实现的验证码
2010-09-28 08:38 761image.jsp <%@ page contentT ... -
经典的jsp分页显示
2010-09-28 08:34 744< %@ page contentType=" ... -
java类的设计技巧
2010-09-27 09:31 9151)一定将数据设计为私 ... -
Java邮件收发SMTP和POP3实例详解
2010-09-27 09:28 1827SMTP的连接和收发过程: a.建立TCP连接。 b.客户端发 ... -
谈谈java中的NaN值
2010-09-27 09:26 1041什么是NaN ?下面是我查到的结果。 Double中的 ... -
Java Jdbc查询MySQL数据库示例
2010-09-27 09:23 1745import java.sql.Connection; im ... -
Struts2 Error filterStart异常的解决方法总结
2010-09-27 09:01 943今天一位网友让polaris帮忙解决一些jqGrid的问题。在 ... -
JAVA开发编程规范
2010-09-27 08:55 878××××-××-××发布 ...
相关推荐
这是一个用extjs做的图书管理系统,还用了spring贺ibatis来做持久层,数据库里面也有,对也想学习extjs 的是一个不错的选择
ExtJS 2.2 图书管理系统 注意:工程采用MyEclipse5.1+tomcat5.5 。 1.您的MSSQL2000没有打sp4补丁,会提示拒绝链接(refuse connction) 2.tomcat版本没有关系,5和6都可以,但是最好选择解压缩版本 3.如果您不是...
extjs很好的工程,很好的上手项目.很值得学习.大家可以借鉴一下.
学习Extjs的不错的系统,持久层是ibatis,可以作为学习的资料。
SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统
ExtJs图书管理系统Jar包ExtJs图书管理系统Jar包ExtJs图书管理系统Jar包ExtJs图书管理系统Jar包ExtJs图书管理系统Jar包ExtJs图书管理系统Jar包
使用struts2(json-plugin) + spring2 + ibatis2 + extjs2.2 + sqlserver2000架构开发的图书管理系统,对学习struts2,json-plugin,spring2,ibatis2, extjs2.2及其整合开发有很大帮助。 原作地址:...
ASP.NET Extjs精华版图书管理系统源码
ExtJS 2.2,图书管理系统 ExtJS 2.2,图书管理系统
使用struts2(json-plugin) + spring2 + ibatis2 + extjs2.2 + mysql5.0架构开发的图书管理系统,对学习struts2,json-plugin,spring2,ibatis2, extjs2.2及其整合开发有很大帮助。 原作地址:...
一个用ExtJS2.2实现的图书管理系统
(基于JSP的完整java毕业设计)ExtJS 2.2 图书管理系统(基于JSP的完整java毕业设计)ExtJS 2.2 图书管理系统(基于JSP的完整java毕业设计)ExtJS 2.2 图书管理系统(基于JSP的完整java毕业设计)ExtJS 2.2 图书管理...
一个非常不所的extjs+struts1制作的图书管理系统,很适合新手做参考学习
基于Struts,JSP,Extjs2.0开发的图书管理系统,数据库为Mysql5.0。
[信息办公]ExtJS 2.2 图书管理系统_bmsh.zip项目JAVA源码+资料打包下载[信息办公]ExtJS 2.2 图书管理系统_bmsh.zip项目JAVA源码+资料打包下载 1.适合学生做毕业设计参考 2.适合个人学习技术研究参考 3.适合小公司做...
分享一个基于ExtJS的简易图书管理系统,一个web应用实现了两种显示方式,一个是普通的(比较难看),还有一个就是ExtJS的,很漂亮,喜欢EXTJS的朋友不妨下载看看
[信息办公]ExtJS 2.2 图书管理系统_bmsh 这两年太卷了,毕设和毕业 答辩竞争激烈,越写越卷,没有创新和亮点的毕业答辩基本达不到老师的要求。 现在学长为你们准备计算机毕设JSP项目,需要的自取哦。[信息办公]...
基于ssh+extjs+oracle实现图书管理系统,内附介绍
这是一个用Extjs实现前台显示的项目,数据库是SqlServer2000
extjs图书管理系统