学院资源共享平台的设计和构建 毕业论文.doc_第1页
学院资源共享平台的设计和构建 毕业论文.doc_第2页
学院资源共享平台的设计和构建 毕业论文.doc_第3页
学院资源共享平台的设计和构建 毕业论文.doc_第4页
学院资源共享平台的设计和构建 毕业论文.doc_第5页
免费预览已结束,剩余35页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学士学位毕业论文学号:20084091026学院资源共享平台的设计和构建学生姓名: 指导教师: xxx所在学院: xxx学院专 业: 信息与计算科学中国xx2012 年 5月xxx大学本科生毕业论文(设计)任务书论文题目学院资源共享平台的设计和构建学院名称xxx学院姓名xxx专业班级08信计指导教师xxx课题类型技术应用毕业论文(设计)的内容摘要1. 阐述毕业设计的开发环境和工具、需求分析、数据库的设计和总体设计,重点论述设计实现的功能2. 总结毕业设计的优点与缺点,有什么创新之处毕业论文(设计)基本要求及工作量要求基本要求:1 、在毕业论文(设计)过程中,通过解决一般的实际问题,培养综合运用,巩固与扩展所学的基础理论和专业知识的能力,提高独立分析问题、解决问题的能力。2、 通过参加毕业实习和科研训练活动,能对课题研究中所存在的问题进行独立钻研、积极探索、勇于创新,使学生受到设计方法和科学研究方法的初步训练。3、 通过毕业论文(设计)工作,培养正确的设计思想和技术经济观点,理论联系实际的工作作风,严肃认真的科学态度。 4、通过毕业论文(设计)工作,使学生在查阅文献、收集资源、理论分析、方案制定、使用计算机、外文阅读、文字表达等基本技能方面得到进一步的训练和提高。工作量要求:1、正文字数:论文字数一般不应少于5000字。2、查阅文献10篇以上,其中查阅与课题有关的外文文献2篇以上,并将其中的1篇文献的摘要的原文和译文附在附录中。毕业论文(设计)的主要阶段计划(分前期、中期、后期)前期:完成文献资料的查找、补充及国内外研究现状综述,收集有关资料,并开题。中期:进行相应补充调查,根据实际事例和掌握的资料情况撰写毕业论文,完成初稿。后期:修改和完善论文,发表相关的文章。任务下发日期2011.11完成日期2012.5系主任主管教学院长审批(签字):摘要学院资源共享平台的设计和构建摘 要本平台是根根据学院专业特性和教学模式设计开发的软件共享平台,目的是为了方便学院共享资源,提高资源的共享性和利用率。平台分为三大功能模块:主页、普通用户模块和管理员模块。主要功能有:游客可以访问主页;普通用户可以上传下载资源及管理自己的资源;管理员可以管理所有资源及用户。本平台使用extjs框架进行网页界面的设计,采用了开源框架ssh,它采用了当今软件设计的流行技术,具有开发效率高、设计灵活、生成的软件界面友好美观等特点。开发语言使用可以撰写跨平台应用软件的java语言,后端的数据库是mysql,该数据库具有较高的完整性,一致性和安全性。关键词:模块;extjs框架;ssh;效率高;java语言;mysqliabstractthe establishment of resources-sharing platform in the college of scienceabstractaccording to the actual situation of the college of science and model of teaching, this platform is designed to facilitate college of science to share resources and improve the resources sharing and utilization. it is generally divided into three main modules: home page module, common users module and administrator module, which guests can visit the home page; common users are able to upload and download the resources and even operate their own resources; administrators are capable of controlling all resources and users.this platform using extjs, ssh framework and popular technology of software design to design,therefore, it has the advantages such as high efficiency, flexible, and beautiful interface. the system is selects java to take the main development language, mysql takes the database. as everyone knows mysql has the high integrity, consistency and security.keyword:module; extjs framework; ssh; java language; mysql3目录目 录摘 要iabstractii目 录iii第1章 前 言11.1研究的目的意义11.2国内外研究现状11.3研究内容和方法1第2章 平台的开发环境与开发工具12.1 系统开发环境12.2 java语言22.3 struts2+spring+hibernate框架22.4 extjs框架32.5 使用的数据库mysql3第3章 需求分析43.1 设计原则43.2 可行性研究43.3 需求分析4第4章 平台的总体设计54.1 目标设计54.2 设计思想54.3 平台结构和功能分析与设计54.3.1平台的结构图54.3.2 功能描述6第5章 数据库的设计与实现65.1 数据库分析65.2 创建数据库表75.3 表关系7第6章 平台的设计与编码86.1 注册页的设计与编码86.2 主页的设计与编码96.1.2 登录(个人信息)模块的设计与编码96.1.3 公告模块的设计与编码116.1.4 资源列表模块的设计与编码116.1.5 编码中所涉及到的主要关键技术136.3管理员模块的设计与编码166.2.1 资源(用户)列表模块的设计与编码166.2.2 个人信息模块的设计与编码206.2.3 编码中所涉及到的主要关键技术206.4 普通用户模块的设计与编码21参考文献22致 谢23附 录24附录一:英文参考文献1原文24附录二:英文参考文献1译文24附录三:英文参考文献2原文25附录四:搭建ssh开发环境的web.xml配置文件25附录五:struts.xml 配置文件27附录六:与数据库链接的配置文件applicationcontext.xml27附录七:监听器源代码29iiixxx大学(设计)第1章 前 言1.1研究的目的意义随着网络技术的迅速发展和j2ee平台的广泛应用,基于b/s的多层web体系结构正在不断的完善。web技术的发展推动了信息化的发展,使人们能够不再受地理空间的限制与其他人进行资源的共享。也是随着共享的资源越来越多,若每次访问都将数据库全部的信息都加载到页面,需要的时间是不可估量的,对于用户,基本是超过三十秒都受不。因此采用分页加载是非常必要的。对于传统的html页面来说,要自己实现显示分页加载资源列表比较困难,需要写很多的javascript,特别是对于基于ajax异步加载,不但涉及到ajax数据加载及处理技术,还需要考虑跨浏览器支持等,处理起来非常麻烦1。extjs提供了分页加载的功能,不仅效果好而且很美观。1.2国内外研究现状目前,资源共享在国内外已经取得了相当丰硕的成果。例如“爱问共享资料”、百度文库。但是,仔细进行深入的分析研究,我们也会看到其中还存在一些问题。资源共享平台共享的针对性不够强,再者就是老师和学生的资源之间交互不方便,共享性较差。有价值的资源形成了一个个的资源孤岛,资源利用率低。1.3研究内容和方法其实,就算用java建造一个不是很烦琐的web应用程序,也不是件轻松的事情。要为一个应用程序建造一个构架时有许多事情需要考虑。从高层来说,开发者需要考虑以下几点:(1)怎样建立用户接口;(2)在哪里处理业务逻辑;(3)怎样持久化应用数据。同时这三点又都需要考虑以下几点:(1)使用什么技术、怎样才能把应用程序设计得松耦合和能灵活改变;(2)构架允许层的替换是否会影响到其它层;(3)应用程序怎样处理容器级的服务,比如事务处理。本论文正是基于上述问题出发,以开发一个资源共享平台为背景,整合struts2、spring和hibernate这三种框架:表现层使用struts2;业务层使用spring;持久层使用hibernate;同时还结合extjs的优点进行平台的开发。第2章 平台的开发环境与开发工具2.1 系统开发环境1、硬件环境:处理器:intel (r) core(tm) duo内存:2g硬盘:240gb2、软件环境:ie:浏览器mysql:数据库tomcat5.5.2:网络服务器myeclipse:编辑器2.2 java语言java是一种广泛使用的网络编程语言。主要的特点是跨平台、面向对象。跨平台是指java能运行于不同的平台。在windows下的代码完全不用修改即可在其他系统比如unix,linux下面运行。使用java编写的程序能在世界范围内共享。之所以能实现跨平台,是因为java引进虚拟机原理,并运行于虚拟机,实现不同平台的java接口之间。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。java的风格十分接近c、c+语言,是一个纯面向对象的程序设计语言。它吸取了c+面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。java还具有简单、安全、可移植等优点。但它也有比较大的缺点,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了java程序的运行效率2。2.3 struts2+spring+hibernate框架struts2是作为控制器的web层框架,大体实现以下功能:获取表单内容,并组织生成参数对象;根据请求的参数转发请求给适当的控制器;在控制器中调用业务接口;将业务接口返回的结果包装起来发送给指定的视图,并由视图完成处理结果的展现;做一些简单的校验或是国际化工作。无论是上传还是下载,没有其他层的协助是无法实现的。hibernate是操作数据库的一种框架,它简化了直接使用jdbc 操作数据库的复杂性和冗余性。spring是一个轻量级的控制反转(ioc)和面向切面(aop)的容器框架,使用spring有以下好处:spring容器控制所有action对象和业务逻辑类的生命周期,由于上层不再控制下层的生命周期,层与层之间实现了完全脱耦,使程序运行起来效率更高,维护起来也方便。第二个好处是事务的处理:在以往的jdbc template中事务提交成功,异常处理都是通过try/catch来完成,而在spring中,spring容器集成了transaction template,它封装了所有对事务处理的功能,包括异常时事务回滚,操作成功时数据提交等复杂业务功能,大大减少了程序员的代码量,也对事务有了很好的管理控制。虽然hibernate中也有对事务的管理,但是hibernate中事务管理是通过sessionfactory创建和维护session来完成。而spring对sessionfactory配置也进行了整合,不需要在通过hibernate.cfg.xml来对sessionfactory进行设定。这样的话就可以很好的利用spring对事务管理强大功能。避免了每次对数据操作都要现获得session实例来启动事务/提交/回滚事务还有繁琐的try/catch操作。这些也就是spring中的aop(面向切面编程)机制很好的应用3。在ssh框架spring充当了管理容器的角色。hibernate用来做持久层,因为它将jdbc做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的sql语句。struts2是用来做应用层的是一个控制器的功能,它负责调用业务逻辑serivce层。struts2、spring、hibernate都有自己的优点和不足,ssh利用spring的优秀注入能力来管理struts2和hibernate,达到了取长补短的效果。2.4 extjs框架extjs是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架。可以把extjs用在.net、java、php等各种开发语言开发的应用中。对于extjs可视化组件,无论从ui界面上css样式的应用,到数据解析上的异常处理,都可算是一款不可多得的javascript客户端技术的精品。更重要的是extjs支持多平台下的主流浏览器。extjs有表格、树形、布局、菜单等用户界面,extjs提供的这些界面为用户日常开发工作节约了大量的时间和精力。extjs有丰富多彩的界面和强大的功能,使用extjs能够让页面显示风格与桌面应用程序效果相似。extjs通过xml或json完成与后台的交互。2.5 使用的数据库mysqlmysql是最受欢迎的开源sql关系数据库管理系统。mysql是一个真正的多用户、多线程sql数据库服务器,它是一个客户机/服务器结构的实现。mysql是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(dbms)来说,mysql具有小巧、功能齐全、查询迅捷等优点。mysql主要目标是快速、健壮和易用4。与其他的大型数据库例如oracle、db2、sql server等相比,mysql自有它的不足之处,如规模小、功能有限(mysql cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,mysql提供的功能已经绰绰有余,而且由于mysql是开放源码软件,因此可以大大降低总体拥有成本。第3章 需求分析3.1 设计原则传统的资源共享方式主要是纸质资源,这种共享的方式成本高且共享不广泛。与传统资源共享方式相比,网络资源具有共享方便、经济和广泛的优点。为了促使更多人共享有价值的资源,平台用积分约束用户,每次共享资源都会有积分奖励,当共享的资源被下载也会得到相应的积分,当然下载资源会被扣除相应的积分。平台在维护上,允许增加、删除和修改,避免没有价值的资源浪费空间。平台在设计上,管理员可以管理所有的用户和所有的资源。3.2 可行性研究随着科技发展、网络技术的日益普及,软件开发技术越来越成熟,优秀的开源框架和免费的开发工具也越来越多。特别是用于j2ee开发的struts2、spring和hibernate三大框架,不仅大大提高了软件开发的效率,而且增强了软件的稳定性,同时使软件更容易维护。有一个用javascript写的ajax框架extjs,主要用于在客户端创建丰富多彩的web应用程序界面,是一个与后台技术无关的前端ajax框架。因此,可以把extjs用在.net、java、php等各种开发语言开发的应用中。而且在国内外的都有类似本课题的成功案例:基于ssh+extjs的企业软件项目管理系统5,struts2框架整合spring框架在文件上传下载中的应用6,the design and development of an enterprise invoicing system based on ssh framework7和based on the extjs technology and ssh framework authority management research8等。所以平台的开发是可行的。3.3 需求分析1、使资源的共享更方便快捷由于通过网络共享资源不受时间、空间的局限,而且经济实惠。只要能上网,就可以登录到该平台下载资源。当然,网络上也许会有很多类似的资源,但经常会遇这样或那样的问题,如下载的软件没有注册码;进入到下载页面时有很多广告,有很多骗人的下载链接;有时还得安装指定的下载软件。本平台都是为了避免这样的问题而设置的。2、使资源更广泛的使用平台减少了要提供共享资源的工作量。因为当一个人觉得一些经验、软件等很有价值,要与别人共享,不可能挨个人问:“我有东西要与你共享,你需要吗?”。也许别人当时不需要这些资源,但是不排除以后都不需要。当有了资源共享平台后,他们就可上传到平台,需要的人随时都可以去平台下载。第4章 平台的总体设计4.1 目标设计平台从功能上分为3个模块:主页、普通用户模块和管理员模块。主页的作用是显示所有共享的资源信息,普通用户、管理员和游客都可以访问,但必须登录后才可以下载资源。普通用户模块的作用是用于普通用户管理本人共享的资源及个人信息。管理员模块的作用是用于管理员管理所有用户共享的资源及所有用户的信息。使用者按照不同的身份登录系统即进入相应的模块。另外一个目标是该平台应易于修改和扩充。4.2 设计思想本系平台将采用j2ee最常规的开发模式mvc三层架构的模式进行开发。struts2框架是基于mvc(model view controller)模式的框架,是一个免费开源的web层的应用框架。页面不需要配置struts2中的action的forward标签,而是直接将业务数据通过httpservletresponse写回到客户端。spring框架是在j2ee的基础上实现的一个轻量级j2ee框架。它服务于所有层面的应用程序,提供了bean的配置基础、aop的支持、jdbc提取框架、抽象事务支持等,它还有效地组织了系统中的中间层对象,消除了组件对象创建与使用耦合紧密的问题。hibernate是一个功能强大的对象/关系映射orm(object relational mapping)框架,对jdbc访问数据库的操作进行了轻量级封装。利用hibernate的orm技术,可以将关系数据库中表的数据映射成为对象,保证源码的简练和完全面向对象的风格。这样,在整套权限系统中struts2用于从页面表单获取数据并调用业务层进行数据的各种业务处理。hibernate用于dao层与数据库进行交互,对数据进行增删改查,在权限系统中hibernate主要用于对各功能数据表进行操作;spring则是封装hibernate和struts2,以便对二者进行管理,提高应用效率。4.3 平台结构和功能分析与设计4.3.1平台的结构图绘制平台结构图的过程,实际上就是对平台功能模块进行分解设计的过程,即合理地将数据流程图转变为所需要的平台结构图。平台结构图将会使游客及用户能直观的了解平台的结构模式,理解平台的各个功能的结构,能很好地方便用户使用和理解整个平台。本平台的总体结构图如下:图 4.1 平台的总体结构图4.3.2 功能描述平台的主要任务是实现普通用户快速的下载资源,管理员高效的完成平台的各项基本操作,资源共享平台主要完成以下功能:1、注册页的功能:游客通过本页注册成为平台的普通用户。2、主页的功能:显示所有用户共享的资源,提供登录的窗口,显示院里的最新动态。无论是平台的用户还是管理员,都可以浏览本页的信息,用户登录后就可以进行上传下载等操作。3、普通用户模块功能:该模块的功能是普通用户可以下载所有的资源,修改和删除本人共享的资源,同时可以修改本人的个人信息。4、管理员功能:管理员可以上传下载所有资源,修改和删除所有的资源信息,还可以添加、修改和删除普通用户及管理员。本平台是通过extjs框架的store和form等结合ssh后台框架来实现的。第5章 数据库的设计与实现5.1 数据库分析数据库在项目中起着举足轻重的作用,是用于保存共享资源及用户信息的仓库,是资源平台得以实现的基础。本次是以设计简单和维护容易的原则设计数据库。根据平台的要求,设计了resource和user两张表:用户信息表(user)(用户id,用户名、密码、用户性别、邮箱、创建时间、积分、权限);资源信息表(resource)(资源id、资源名称、资源类型、资源路径、需要积分、上传时间、上传人)。5.2 创建数据库表1、用户信息表的设计是为了记录用户的基本信息、区别用户的身份及方便管理员管理用户。表中包括用户id、用户的登录密码和用户的权限等信息,表的具体结构设计如下:表5.1用户信息表字段数据类型属性useridinteger用户名idusernamestring用户名passwordstring密码sexstring性别emailstring邮箱createtimedate创建时间scoreinteger积分flagstring用户权限2、资源信息表主要用于存储共享资源的相关信息,其中的相关信息是在用户共享资源时就完善了,此表主要用于普通用户和管理员对共享资源的查询,用户根据资源名称进行查询,便可得知资源的其他相关信息,其中资源路径是用于下载时找到该资源的唯一途径。表的具体结果如下:表5.2资源信息表字段数据类型属性resourceidinteger资源idresourcenamestring资源名称resourcetypestring资源类型resourcepathstring资源路径needscoreinteger需要积分createtimedate上传时间useriduser上传人5.3 表关系平台两张表的关系是一个多对一的单向关联关系。在资源信息表resource中有一个外键userid,通过这个外键可以获得共享该资源的用户的信息。表关系结构如下图所示:图 5.1 表关系图第6章 平台的设计与编码本平台包含注册页、主页、管理员模块和普通用户模块四个页面。6.1 注册页的设计与编码注册页的功能是游客通过本页注册成为理院资源共享平台的普通用户。游客按要求填写基本信息就可以注册为本平台的用户,同时会登录到平台的主页。理院平台的注册页面如图6.1所示。图 6.1 普通用户注册页面关键的代码如下:var adduserform = new ext.form.formpanel(title:欢迎注册平台, labelalign: right, labelwidth: 80, buttonalign: center, style: margin-left:210px;, width: 600, height:500, frame: true, items: . );window.adduserform = adduserform;6.2 主页的设计与编码主页包含了资源列表、登录(个人信息)和公告三个小模块!资源列表模块功能是显示所有用户共享的资源,只要用户登录了就可下载这些资源。登录(个人信息)模块,如果用户没有登录则是显示的为登录模块,作用是提供用户登录的窗口和跳转到注册也页面的踏板;如果登录了则是个人信息模块,作用是显示登录用户信息。公告模块以图片方式显示院里的最新动态。平台的主页如图6.2所示。图 6.2 资源共享平台的主页6.1.2 登录(个人信息)模块的设计与编码若用户没有登录,显示登录模块,若已经登录就显示个人信息模块。平台用户的权限有普通用户、管理者两种。普通用户可以上传和下载共享的资源,上传资源时可以设置下载本资源需要的积分,每当被下载一次就会把相应的积分累加到自己的积分,普通用户也可以查看和管理自己共享的资源,下载资源会根据上传者设置的积分扣除相应的积分。管理员的权力是管理整个平台,可以修改或删除所有共享的资源,同时还可以添加管理员或者普通用户,进行系统的维护和用户的管理。游客可以浏览本平台主页的信息,但是不能上传和下载本平台共享的资源!不管是管理员还是普通用户,都在同一个模块登录,系统会根据用户的角色跳转到不同的页面。此模块有非空验证及信息验证,而且当且仅当填写的用户名和密码都正确才能登录成功。否则会提示“用户名或密码错误”。点击注册就会跳转到一个注册的页面。平台登录与注册功能的逻辑结构如下图所示:图 6.3 平台登录与注册功能的逻辑结构图实现登录功能的代码9如下:action(login)public void login() throws servletexception, ioexceptionrequest.setcharacterencoding(utf-8);string username= user.getusername();list userfdb = userservice.getuserbyname(username);if(userfdb != null ) for(int i = 0; i userfdb.size(); i+)user u = userfdb.get(i);if(u != null & u.getpassword().equals(user.getpassword()request.getsession().setattribute(key.current_login_user,u);struts2utils.renderhtml(success:true,msg: +u.getflag()+);elsestruts2utils.renderhtml(failure:true,msg:用户名或密码输入错误);elsestruts2utils.renderhtml(failure:true,msg:用户名或密码输入错误);6.1.3 公告模块的设计与编码该模块的功能是自动播放理院的最新动态10,当鼠标移到某一个数字上,画面就会停留在指定的图片。这一模块大大增加的平台的美观性和提高了吸引力。具体实现代码如下: 12345 6.1.4 资源列表模块的设计与编码该模块用于显示所有资源,如果用户没有登录,点击任何一个按钮都会提示:“您还没有登录,请先登录再操作!”。当用户登录后就可以进行如下的操作了:图 6.4上传资源的窗口1、上传资源:点击该按钮,会弹出一个名为上传资源的窗口如图6.4。该对话框有非空或者文本信息验证的功能,按照要求填写完后就能上传资源了。如果上传的资源的等于零或者大于5000m会分别提示:“上传资源大小不能为0”、“上传资源不能大于5000m”。资源的大小在限制之内,就可能上传成功,并提示上传成功,此时列表就会多了一条刚才上传的资源的信息。点击取消或者关闭窗口则取消相应操作。具体实现代码如下: iconcls: icon-user-add, text: 上传资源, handler: function() if(loginusername=null) ext.msg.alert(提示,您还没有登录,请先登录再操作!) else uploadwin.show(); 图 6.5 下载资源对话框2、下载资源:点击该按钮,当且仅当满足选择一条数据时才能执行下载操作,否则会提示“请选择一条数据进行下载”。选择了一条数据后,如果用户的积分不够,就提示“积分不够,不能下载此资源”,如果够积分就会弹出如图6.5所示的对话框提示“下载此资源扣除x积分,确定下载此资源吗?”。若点击确定则下载该资源,点击取消则取消相关操作。具体实现代码如下: iconcls: icon-user-add, text: 下载资源, handler: function() .var downloadwin = new ext.window(title:下载资源,id:downloadresource,height: 150,width:300,items:downloadpanel);downloadwin.show(); 3、搜索功能:输入要搜索资源的名称,平台会将搜索结果显示在列表中,若没有类似的结果则直接显示所有的信息。具体实现代码如下:id : searchresourcename, xtype:textfield, emptytext:搜索案件, xtype:button, text:搜索, iconcls:search, handler : function()resource.searchresourcename=ext.getcmp(searchresourcename).getvalue();ext.getcmp(resourcegrid1).getstore().load(params:searchcasename:ext.getcmp(searchresourcename).getvalue(),start:0,limit:15);6.1.5 编码中所涉及到的主要关键技术1、div+ cssdiv + css是一种网页的布局方法,这种网页布局方法有别于传统的html网页设计语言中的表格(table)定位方式,可实现页面内容与表现样式分离。css层叠样式表(cascading style sheets)的缩写,用于定义html元素的显示形式,是w3c推出的格式化网页内容的标准技术。样式表可分为嵌入式样式表、外部样式表和内联样式表三种,在同一文档内可以同时使用三种方法。在html文档中加入css操作如下:1) 外部样式表:样式定义放在一个单独的文件中,例如引入ext-all.css样式表。在head段使用标记,语法格式:2) 嵌入式样式表:元素段必须出现在head段内,有一个开始和结束标记,并且可以有多个元素段。语法格式:样式定义。3) 内联样式表:写在开始标记里面,如设置div的位置:。2、ext.data.storestore创建好后,需要调用load()函数加载数据,加载成功后才能对store中的数据进行操作。load()调用的完整过程如下面的代码所示:store.load(params:start:0,limit:20,callback:function(records,options,success)ext.msg.alert(info,加载完毕);,scope:store,add:true);配置项说明如下:表6.1 store 主要配置项表配置项类型说明paramsmixed 是在store加载时发送的附加参数callbackfunction 是加载完毕时执行的回调函数,它包含3个参数:records参数表示获得的数据,options表示执行load()时传递的参数,success表示是否加载成功scopeobject 用来指定回调函数执行时的作用域addboolean add为true时,load()得到的数据会添加在原来的store数据的末尾,否则会先清除之前的数据,再将得到的数据添加到store中如果用params参数指定了需要使用的参数,以后再次执行reload()重新加载数据时,store会自动使用上次load()中包含的params参数内容11。3、ext.form.formpanelform布局由类ext.layout.formlayout定义,名称为form,是一种专门用于管理表单中输入字段的布局,这种布局主要用于在程序中创建表单字段或表单元素等使用。在实际应用中,ext.form.formpanel这个类默认布局使用的是form布局,而且formpanel还会创建与标签相关的组件,因此一般情况下我们直接使用formpanel即可。form简单的使用方法:首先用new ext.formpanel(items:.,.,.)类似的代码,确定整个form的行数,即items里的个数。其次每行如果要分列,再利用layout:column,items:,.以column布局,横向分切为n列,即items:,.中的个数,最后每列中,如果要放输入项,再把每行相关列(其实就是单元格),采用form布局方式处理,并标明输入项,类似代码:items:columnwidth:0.5,layout:form,items:xtype:textfield,fieldlabel:用户名,anchor:90%。formpanel 主要配置项如下:表6.2 formpanel主要配置项表配置项参数类型说明itemsmixedcollection一个元素或元素数组buttonsarray一个按钮配置对象的数组,按钮将被添加到表单页脚中buttonalignstring按钮的对齐方式,可选值有left、center、right,默认为centerlabelwidthnumber表单标签的宽度labelalignstring表单标签的对齐方式,可选值有left、top、right,默认为leftlabelseparatorstring字段标签与字段之间的分隔符,默认为:minbuttonwidthnumber按钮的最小宽度,默认为754、ext.form.action.submit表6.3 formpanel 主要配置项表配置项参数类型说明successfunction执行失败后回调的函数,包括两个参数:form和actionmethodstring表单的提交方式,有效值包括get、posturlstring动作提交的路径waitmsgstring动作执行时显示的等待信息resultboolean包含布尔类型的success属性和其他属性,如success:true,msg:okparamsmixed需要传递的额外参数。这些参数将被添加到form的ext.form.basicform.baseparams中,并与form的输入栏一起被提交到指定的url。传递的参数被ext.urlencode进行标准的http参数编码。6.3管理员模块的设计与编码图 6.6 管理员的功能结构图管理员模块是实现如图6.6所示的功能,用于管理员管理平台的资源及用户,管理员可以上传下载所有资源,修改和删除所有的资源信息,还可以添加、修改和删除普通用户及管理员。效果图如图6.7所示:图 6.7 资源共享平台的管理员模块6.2.1 资源(用户)列表模块的设计与编码此模块使用了一个extjs的tabpanel面板,将资源信息列表和用户信息列表集合在一起,每次加载默认激活资源信息列表。当点击“用户信息列表”标题,就会由资源信息列表改为用户信息列表。管理员登录后就可以进行如下的操作了:1、上传资源和下载资源,功能和实现方法与主页的一样。在此省略。图 6.8 资源修改窗口2、修改资源:点击该按钮,当且仅当满足选择一条数据时才能执行该操作,否则会提示“选择一条数据进行修改”。选择了一条数据后,点击该按钮,弹出一个修改资源的窗口,如图6.8所示,并将原来的信息显示在相应的位置上,修改完信息后点击确定完成修改,修改好的数据立即就会显示在资源列表中。点击取消或者关闭窗口则取消相关操作。具体实现的代码如下: iconcls: icon-user-add, text: 修改资源, handler: function() if(loginusername=null) ext.msg.alert(提示,您还没有登录,请先登录再操作!) else var count = resourcegrid1.getselectionmodel().getselections().length; if(count!=1) ext.msg.alert(提示,选择一条数据进行修改!) return else var records = resource.selectobj; if(records!=null) uploadform.getform().loadrecord(records0); uploadwin.settitle(修改资源信息); uploadwin.show(); 3、删除资源:当选择一条或者一条以上的数据,就会弹出一个对话框提示:“确定删除此信息吗?”,点击确定,若删除成功就会提示:“删除成功”;否则提示“删除失败”。点击取消或者关闭窗口则取消相关操作。 图 6.9 添加和修改用户界面4、添加用户:点击该按钮,会弹出一个添加用户的窗口,如图6.9(左)所示。该对话框有非空和文本信息验证的功能,如对邮箱格式和积分类型的验证。按照要求填写完信息后,点击确定完成添加用户操作。添加成功则提示“添加成功”,否则提示“操作失败”。具体实现代码如下:var adduserwin = new ext.window(title:添加用户,id:adduserwin,autoheight: true,width:300,items:adduserform,buttons: text: 确定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论