已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京大学金陵学院 毕业设计(论文)本 科 毕 业 论 文院 系 信息科学与工程学院 专 业 计算机科学与技术(ZZB) 题 目 畅途网旅游景点 后台管理 年 级 14级 学号 学生姓名 指导老师 职称 讲师/java研发工程师论文提交日期 2016.4.25 摘 要随着人们生活水平的提高,越来越多的人喜欢出去旅游来丰富自己的生活,电商旅游行业也随之成为世界发展势头最强劲的产业之一。南京特捷交通技术系统有限公司(畅途网)利用已有的客户资源和平台资源与同程旅游网公司进行密切合作,并在原有的系统之上开发出新的产品,开辟景点频道。本论文主要研究畅途网景点后台管理系统,从整个项目的需求出发,结合公司涉及业务及,主要采用原有系统的框架技术,即SSH框架,新增景点业务的所有后台功能。目前,该项目已经部署到真实环境,普通用户可以通过登陆网站购买各大城市的景点门票,后台管理功能也有着良好的使用效果,因此公司开辟旅游业务已成功的迈出的第一步。关键词:畅途网;旅游;景点;SSH;后台管理Attractions background management systemABSTRACTAs peoples living standards improve, more and more people like to travel to enrich their own lives, the tourism industry-related e-commerce also will become one of the worlds most dynamic growth industries.Nanjing Tegic Transportation Technology System Company(ChangTu Network)use existing customer resources and platform resources and with the way Tourism Network companies to cooperate closely and develop new products on top of the existing system and open up channels of interest.In this thesis attractions background management system, starting from the needs of the entire project, combined with the company relating to the business and, mainly in the framework of the existing technical system, ie SSH framework, new attractions all the business back-office functions.Currently, the project has been deployed to the real environment, ordinary users can purchase tickets to attractions in major cities by landing website background management functions also have a good effect, so the company has successfully opened up the tourism business towards first step.Keywords:Changtu Network; Tourism; Attractions; SSH;Backstage Management目 录摘 要iABSTRACTii目 录iii第一章 绪 论11.1 研究内容11.2 研究现状和发展趋势11.3 研究意义21.4 本文的研究方法及技术2第二章 技术框架介绍32.1 Struts232.2 Spring32.2.1 Spring控制反转32.2.2 Spring面向切面42.2.3 Spring主要组成42.3 Hibernate42.3.1 Hibernate 核心接口介绍42.3.2 Hibernate Session 常用方法52.4 Struts2 、Spring 、Hibernate 框架集成5第三章 系统需求分析63.1 用户需求63.2 功能需求63.4 性能需求83.5 配置需求8第四章 系统设计94.1系统功能模块结构94.2 系统技术架构104.3 系统数据库设计114.3.1 Oracle介绍114.3.2 表结构设计11第五章 系统实现135.1 Hibernate映射实现135.1.1 映射过程135.1.2 Hibernate反向工程155.2 景点城市管理165.2.1 景点城市目录树实现165.2.2 景点主题图片添加185.3 景点管理205.3.1 数据分页展示205.3.2 添加225.3.3 修改255.3.4 删除255.3.5 查询265.4 景点订单管理275.4.1 订单查询275.4.2 导出excel285.4.3 短信重发295.4.4 订单退票30第六章 总结326.1 项目工作总结326.2 工作展望33结束语34致谢35参考文献36iv第一章 绪 论1.1 研究内容基于已有的畅途网后台管理系统,结合相关公司的景点需求,设计所需功能的样式,开发景点相关功能模块,实现基本的增删改查管理功能以及景点订单管理,景点退票,上传图片等使用功能。1.2 研究现状和发展趋势目前国内外,旅游与互联网的深度融合,已经成为旅游业的一种新常态了,各旅游业已经充分的利用网络营销的功能,有效地整合旅游数据资源,并实现推动了旅游经济的发展。在国外,拿美国举例,无疑是旅游电子商务发展最为发达的国家,根据调查表明旅游行业网上交易已经成为网上交易的巨头,目前而已美国就有6个超过10亿用户旅游网站,而电子商务形成的营业额成本比电话或者旅游代理商,增加了百分之九十,而在数据方面,2012美国地区移动端预定总额20多亿美元,占全球总额预定的百分之二,而在短短的两年时间内,这个数字猛增到130亿美元左右,预期2016年增长至400亿美元,是超过在线预定总额的四分之一,同时欧洲地区旅游业预定总额将会占到在线总额的百分之二十,相比美国市场稍低一些,由此可以看出国外的互联网旅游业的盛行和风靡,并且已经形成一种模式和常态。在国内,比较国外发展相对迟一点,但是我国历史悠久,文化背景丰富,景点资源广阔,随之旅游业发展迅速,那么如何利用好这些旅游资源,扩大经营规模,这是摆在旅游企业面前的关键问题,因此旅游电子商务业也随之盛行,在最新发布的中国旅游集团发展报告2015指出,预计到2020年,国民旅游人均出游达到5次,这将成为旅游行业里最罕见的状态,资料中还说明每年超过60亿国内旅游人次和2亿出境旅游人次的巨量市场。如果加上传统意义上的旅游相关数据,市场规模将超过600亿人次,在2014年,在线旅游交易额已达3077亿元1。市场的庞大引来了国内各大企业的追捧,目前国内旅游业相对发展较好的企业有,携程,同程,去哪儿,途牛,等等,这些企业在行业里的发展迅速,并且企业间的竞争相当激烈,另外,同样作为电子商务行业巨头的京东,百度等互联网公司和电商企业,在最近五年之内的对旅游行业的投资已经达到350亿,在线旅游已经成为投资的新热点。然而,国内互联网旅游行业发展迅速的同时,也存在一些客观性的问题,例如网站的描述过于美好,游客在实际体验中,并没有初期预想的好,招来游客投诉,又或者网络信息的糜烂,人们选择信息的恐惧也会增加,发布信息方便了,但展现自身信息难度大大增加,又或者信息真实性受损,信息传播缺少权威性等。1.3 研究意义畅途网旅游景点涉及相关数据十分庞大,用户从前台浏览某些景点,主题,游乐项目,景点详细,到最后下单完成,期间看到和使用的数据必须要通过该系统集中管理,整合数据的同时,可以通过系统来集中管理前台数据的展示,加上用户对产品购买后的记录,给管理人员一个渠道进行统一有效的管理显的十分重要。畅途网旅游频道项目的研究与实现,是公司发展的切实需求,是畅途网发展酒店业务之后的必经步骤,此外该系统的实现,又再次带动了整个企业的发展趋势,为以后拓宽更多业务打下更扎实的基础。因此开发一个适合畅途网的旅游景点平台成为重要的研究意义。1.4 本文的研究方法及技术利用 SSH 集成框架技术实现该畅途网旅游景点业务后台管理系统功能,从MVC模型的基本思想出发,即视图层请求到业务控制层,再到核心控制层到DAO层、等方面,实现系统层次分析。其中实现系统利用Spring的IoC 机制对业务组件进行低耦合、模块化的组装,Hibernate框架实现了该景点管理系统对象与关系数据表之间的映射,Struts 架构实现了该旅游管理系统 MVC 设计模式2。根据分层设计理念和 SSH 集成框架技术,实现核心功能模块:景点管理,景点主题分类,景点图片上传,景点订单查询,景点退票等。第二章 技术框架介绍2.1 Struts2Struts2框架的核心其实就是拦截器(filter类),拦截器拦截所有用户的相关请求之后,在拦截器里做相关业务处理,这样设计的目的使得业务逻辑控制器能够与Servlet API完全脱离开。另外,Struts2是一个轻量级的MVC流程框架,轻量级是指程序的代码不是很多,运行时占用的资源不是很多,MVC流程框架就是说它是支持分层开发,控制数据的流程,用户可以很清晰的知道业务流程去向。如图2-1为Struts2的工作流程。图2-1 Struts2工作流程2.2 SpringSpring 是一个开源的框架技术,实际上它是一个实现了IOC的容器,也就是所谓的Bean的工厂,Spring的两大特征分别是:控制反转(IoC)和面向切面(AOP),它的主要目的是简化企业开发,降低业务组件之间的耦合度,增强系统的扩展性。2.2.1 Spring控制反转主要是用来将类的创建和依赖关系人工写在配置文件里,然后由配置文件进行动态注入,最后实现“高内聚,低耦合”,简而言之,经常使用创建对象的new方法,单列方法,工厂模式,在这里都可以通过控制反转来控制,它帮助程序开发者,来管理bean,来创建对象,这样的最终目的在于类与类更加紧密,管理方便,与业务无关的东西也被提取出来3。2.2.2 Spring面向切面AOP主要目的将与程序业务无关的代码内容分离,应用对象只实现它们应该做的业务逻辑。简而言之,程序设计中没有必要在重复不停的去做业务不相干的事情,列如记录日志,权限控制,异常处理,事务控制等等重复操作,这些操作将由AOP帮你统一实现3。2.2.3 Spring主要组成如图2-2为Spring核心组成部分图2-2 Spring框架的组成2.3 HibernateHibernate框架是一个开源的对象关系映射框架,与java程序类似,它对底层的JDBC进行了非常轻量级的对象封装,更否合了程序设计者的思路,对于初学者来说,它可以排除SQL疑难,改用对象的方法进行与数据的交互。Hibernate使用原始的JDBC,java客户端,JSP等等场合4。2.3.1 Hibernate 核心接口介绍1) Configuration接口,它的主要功能在于配置并启动Hibernate,创建SessionFactory对象。2) SessionFactory,负责初始化hibernate,创建session对象,SessionFactory是线程安全的。3) Session,负责更新,保存,删除,加载一个对象,是非线程安全的。4) Transaction:负责事务的控制,当增删改操作失败时,及时回滚等。5) Query和Criteria接口:执行各种数据库查询,Criteria由session创建5。2.3.2 Hibernate Session 常用方法1) save:保存对象,保证立即执行并返回对象标示符。2) persist:保存对象,不保证立即执行,可能等到flush时才会返回对象标示符。3) get:根据主键获取对象,结果为null不抛异常。4) load:根据主键获取对象,结果为null抛异常。5) update:更新对象。6) saveOrUpdate:根据id 和 version的值来确定是保存还是更新对象。7) delete:删除对象5。2.4 Struts2 、Spring 、Hibernate 框架集成Struts2 是一个控制器,负责接受页面数据并调用它的MVC实习视图层控制,返回数据展示给用户,使用它可以清晰的看到业务流程,这对于系统的后期的维护提供了方便。当新的开发设计者拿到旧的开发项目时,不会因为业务的不熟悉而对系统感到陌生。Hibernate是一个映射型的框架,它负责数据的持久化,因为目前的大部分的数据库都采用关系数据库,而java程序是面向对象的,所以Hibernate负责数据的控制。Spring的主要功效在于它的本身,完成依赖注入,降低各个模块的耦合度,有利于提升项目各个模板的复用,为程序开发者,省去大量的开发重复工作,使系统更加趋近高内聚,低耦合要求。另外Spring的jar包完美的将几个框架结合在一起,实现项目的整合,能使struts2和Hibernate更好的工作6。第三章 系统需求分析3.1 用户需求现如今,旅游成为了人们追求精神愉悦的一种方式,而随着电商行业的迅速发展,也为旅游业提供了很大的发展,跃然旅游信息量越来越大,涉及全国乃至全世界,人们对信息掌握显得越来越重要,为了满足操作人员可以通过一个管理平台去收集信息,方便快捷的管理信息,也是成了电商网站重要的组成部分。畅途网企业内部人员可以通过后台管理系统,能够收集公司旅游网站内的所以数据信息,并且能够由JSP页面动态实时的展示数据,进行简易的按钮进行数据操作等。普通用户在网站下了单之后,后台管理可以查看用户基本信息和交易金额,用户有权提前退款申请并在有效期内,用户交易金额,返回账号余额或者支付平台。3.2 功能需求景点后台管理系统基本操作功能划分为,数据列表展示,添加,修改,删除,查询,等功能。从操作功能的使用类型,操作数据的功能以及中间涉及方法大体流程相似。下面是本后台系统涉及其他功能要求如下:(1)城市目录树功能,将国内所有涉及省份下的城市和区进行展示,以树状形式展开,点击城市可以展示该城市下的一些景点信息,城市信息等。(2)订单查询功能,由于后台涉及订单数据量过大,需要通过查询功能进行条件查询,筛选操作人员想要的数据展示出来,并在此基础上进行数据修改等操作。(3)图片上传功能,前台需要展示有关畅途网售卖景点的图片信息,通过后台来添加图片内容,后台支持图片上传并修改功能。(4)重发短信功能,用户购买景点产品之后,正常情况会收到购买产品的短信,但由于某种原因用户收不到短信,则要求后台可以进行重发短信功能(5)退票功能,由于用户自身原因,在购买景点产品之后,或者购买错误,需要退掉购买产品,并要求退款,后台支持退票功能。如图3-1为该系统的基本用例图:图 3-1 基本功能用例3.3 数据需求 景点后台管理系统的数据需求包括如下几点:(1)景点项目相关业务数据输入与处理的准确性、实时性,要求用户输入的景点业务数据是要符合能够正确处理的数据,错误的数据会引起数据的不正确以及不可用,因而使该景点管理系统的工作失去使用价值。数据可以通过人工输入,或者系统输入,人工录入要通过该管理系统界面的和谐提示与系统容错性处理。在后台管理系统中,数据的入录比较频繁,所以系统要有较好的执行能力,以确保及时有效的处理景点业务数据。(2)景点业务数据的一致性与完整性,由于该景点管理系统的景点业务功能在不同的管理部门中运用, 这就要求不同的操作者在使用后台管理系统通过后台管理系统进行数据的增删改操作时要进行严格的控制,保持数据的一致性才能体现出后台管理系统的及时性和完整性,该景点管理系统必须拒绝该数据的输入7。(3)景点业务数据的共享与独立性,景点管理系统的部分数据是共享的,列如基本的景点信息,图片信息等,因此,在开发过程中充分考虑数据的独立性,尽量让应用程序和业务数据不存在依赖关系,减轻应用程序的维护工作量,同时运用用户管理功能,使不同的用户按照不同的职责正确使用系统,这样,能够保持该景点管理系统数据的独立性。(4)数据的安全性,由于数据的涉及公司的财产,资源,人力等基本安全信息,涉及一些机密的信息,如账号,金额,客户手机号等信息,应对数据进行严格控制,必要时候进行敏感信息加密等措辞,保证数据的安全性。3.4 性能需求(1)系统响应过程的准确性与及时性系统响应过程的准确性与及时性是景点后台管理系统的首要要求。 响应时间表示系统在接受到用户请求到用户看到实际操作界面的时间间隔,时间间隔的大小决定系统的响应能力。管理系统设计与研发过程中,要充分考虑系统现阶段和未来可能承受的业务处理量,在编写程序代码的同时也要考虑代码的冗余和复杂度,最终使后台管理系统的处理能力与响应时间可以满足企业对业务处理的需求。(2)系统的可扩展性畅途网景点频道从无到有,后期的维护和升级才是最重要的,因此最初的设计要重点考虑可扩展性,要求能够不断的在后期满足使用者的需求,采用先进的框架技术就显得十分重要了。(3)系统的易用性与易维护性后台管理系统主要针对人群是公司业务人员,而考虑其人员对计算机的操作和功能的不熟悉,这就要求系统具备良好的用户操作界面,友情提醒,操作指南,缩小操作难度,加快操作者的使用效率。使用J2EE三大框架为支撑,在开发过程中尽量采用面向接口编程,避免将程序直接写死的情况,遵循低耦合的设计原则,增加系统的易维护性。(4)系统的安全性和可靠性后台管理系统应该具有较高的安全性,关键是要防止非法用户进入系统进行数据修改、删除,可对用户操作权限的控制,可靠性方面,系统能够存储较大的数据量,在多用户并发访问环境下可以保证系统正常运行,不会产生干扰操作,在数据表表结构设计时应多注意效率。3.5 配置需求(1)系统架构:采用B/S架构(2)应用服务器版本:Jboss4.0(3)开发工具:MyEclipse8.5(4)数据库:oracle(5)系统:windows7(6)语言:Java第四章 系统设计4.1系统功能模块结构结合畅途网公司内部需求,整个景点项目后台管理系统这个模块涉及功能主要分为几大部分:基础的景点管理,推荐景点,景点主题,景点城市,景点订单,景点退票等,此外这几大块下还加入一些其他附加功能,比如,景点产品管理,产品供应商管理,景点图片管理,主题图片上传,订单查询,订单重发短信,退款审核等。如图4-1为后台管理系统涉及的整体功能模块。图4-1 景点后台管理系统整体功能模块从上面的模块可以继续细化功能作用,如表4.1表示:表4.1 模块功能功能名称备注景点管理通过选择的城市实时展示该城市下的所有景点列表,并可以通过选择每一个景点进行修改查看详情,查看产品,图片,供应商等重要使用信息。推荐景点管理主要展示各大城市下推荐的景点列表,也可以添加推荐景点,数据添加后前台推荐景点下的列表会随之改变。景点主题景点主题主要目的是划分景点的种类,展示景点主题后,可以添加主题下的图片,前台拿主题图片进行展示。景点城市管理主要提供给前台使用,由于部分城市下的景点业务会暂停售票,或者城市信息不够完全,可以通过此功能进行修改,当某城市业务被修改关闭,前台就不会显示该城市的信息。景点订单管理用户前台进行产品购买后,为了方便统计,后台可以通过该功能查询订单信息,查询是这块的核心作用,筛选条件比较完全,并且订单可以查看具体的门票信息,该功能支持订单重发短信。景点退票主要用来用户提出退票需求,针对其想要的方式进行退款,先进行基本的订单查询后,核对信息后进行退款,退款后订单进入退款审核中,审核通过后,通知支付平台退款给用户。4.2 系统技术架构按照第三章的需求分析,并分析先进的轻量级框架,系统利用SSH框架作为总体架构,该后台管理系统技术架构如突然4-2 所示图4-2 景点后台管理系统技术框架根据上图说明,程序执行流程,从客户端提交JSP页面请求开始,通过JBOSS服务器,页面请求的数据被Struts2的filter拦截,数据传送给Struts中的Action里,Action里调用model进行对应数据获取,具体数据操作,由action调用上层管理接口DAO,上层管理接口调用自己特定方法去执行操作数据库,最后返回结果由Action返回至JSP结果页面,而Spring的DI功能贯穿整个功能,主要是Struts2和Hibernate相互操作的过程创建对象。4.3 系统数据库设计4.3.1 Oracle介绍Oracle是目前世界上使用最流行的,也是企业使用最为广泛的一款采用客户/服务器体(CLIENT/SERVER)或B/S体系结构的一款关系数据数据管理系统,主要特征在于,它具备完整的数据管理功能,具备完备的数据关系产品,也具备完善的分布式处理功能。Oracle数据库的优势:(1)采用ORACLE7.X引入了共享SQL和多线索服务器体系结构。这一特征就减少了ORACLE的资源占用,并增强了其本身的能力,使它在不同的机器上都能够正常运行,包括低配的软件硬件设施上,并且可支持更多的用户首映。(2)支持基于角色分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。(3)支持大量多媒体数据,包括声音,图像,动画,多维版的数据等。(4)提供多语言整合接口,可嵌入各种高级语言,能在常用的C,C+嵌入SQL语句和存储过程等。可以快速生成基于客户端的应用程序,并具有良好的移植性8。4.3.2 表结构设计畅途网旅游景点频道涉及相关数据十分庞大,设计初期采用powerdesigner工具来规划整个项目表结构,如4.2表所示涉及核心表名及作用描述表4.2 详细表名TableName表名称描述htm_tourist_products景点产品表记录景点下的门票信息htm_tourist_product_vendors产品供应商记录产品供应商提供产品信息htm_tourists景点表记录景点信息htm_tourist_pictures景点图片表记录景点图片信息htm_tourist_vendors景点供应商表记录景点供应商信息htm_tourist_themes景点主题表记录景点主题分类信息ecm_recommond_products推荐产品表记录推荐产品的信息htm_tourist_busy_cities开通城市表记录景点开通城市信息htm_tourist_orders景点订单表记录景点订单的信息htm_hotel_vendors mm供应商表记录供应商名称htm_tourist_orders_details订单明细表记录订单下的明细信息根据上表所涉及表,如图4-3为景点项目涉及使用的主要表结构设计。根据畅途业务需求及数据需求分析,设计表结构的时候尽量满足一对一,一对多的特征,进行表关联,设好主键与外键关联,对于景点表,景点订单表这样的大数据表建好相关同意词操作。图4-3 景点项目涉及主要表结构第五章 系统实现5.1 Hibernate映射实现5.1.1 映射过程景点后台管理系统利用Hibernate实现对象与数据之间的映射,图5-1为实体对象与数据之间的映射示意图图5-1 实体对象与数据表之间的映射数据表里的字段与Hibernate配置文件XXX.hbm.xml中的配置信息相对应,包括字段的类型,引用java的文件位置,大小都要一一对应,那么持久化Hibernate运行过程如下:(1)后台管理系统应用程序先调用Configration类,该配置类会去读取Hibernate的畅途网后台配置文件applicationContext.xml以及映射文件XX.hbm.xml文件的信息,包括一些数据源信息,Hibernate方言信息,扫描哪些对象类的文件等信息,并利用这些信息建立一个会话工厂(SessionFactory)对象。如图5-2为后台管理系统的applicationContext.xml的配置信息图5-2 applicationContext.xml的配置信息(2)利用建立好的SessionFactory建立一个Seesion对象,并用会话对象建立事务(Transaction)对象;(3)通过Seesion对象,可以采用最基本的SQL执行,也可以用Hibernate固有的方法,列如save()方法,get()方法等 类实例进行加载、保存、更新、删除等操作;在查询的情况下,可通过会话对象建立一个查询(Query)对象,然后运用查询对象执行查询操作;如若没有发生异常,事务对象将提交这部分操作结果到后台管理系统数据库中。 为了方便程序开发的时候不需要将会话工厂的类导入到DAO层来进行实例化,设计采用用Spring的IOC容器的特征对Hibernate的会话工厂实例化进行管理,减少了很多程序开发者的重复开发工作,如图5-3为Hibernate在与数据库交互的运行过程。图5-3 Hibernate运行过程5.1.2 Hibernate反向工程MyEclipse中的Hibernate反向工程可以根据数据表自动为我们生成实体类,提高工作效率,但是,Hibernate中单向一对多,多对一,双向多对一关联底层的数据库结构是一样,所以在进行反向生成实体类时候需要在生成过程中进行一些设置来生成需要的关联关系。下面介绍反向工程使用步骤1、选择myeclipse hibernate视图;2、建立与后台数据库的连接 1)configure database driver; 2)添加对应的数据库driver; 3)添加driver对应的jar包; 4)配置链接参数(示例:jdbc:oracle:thin:5:1521:dev)3、打开数据库连接,选中所对应的表4、右键数据表对象,选择hibernate reverse engineering5、选择将要生成的文件的路径:com.tts.htm.pojo6、最后勾选Java data object,点击完成,myeclipse会自动将数据表的字段在生成到第五步选择的文件pojo中。如图5-4 示例生成文件的选项图5-4 Hibernate反向工程生成文件示例5.2 景点城市管理5.2.1 景点城市目录树实现1、创建htm011_file_async_ztree.jsp文件利用jQuery的ztree脚本插件:jquery.ztree.core-3.1.js实现功能树,如图5-5导入ztree插件图5-5 导入ztree脚本2、配置zTree,引入基本的插件js之后要对ztree进行设置,其中beforeClick是用于捕获勾选或取消勾选之前的事件回调函数,并且根据返回值确定是否允许勾选function beforeClick(treeId, treeNode) if(treeNode.id0 | treeNode.id.indexOf(a)-1)window.parent.frameshtm010_city_detail.location.href = htm010_list.action?cityId=+treeNode.id;function onCheck(e, treeId, treeNode) alert(onCheck); function onClick(e,treeId, treeNode) var zTree = $.fn.zTree.getZTreeObj(cityTree);zTree.expandNode(treeNode);$(document).ready(function()/初始化ztree对象 var zTreeDemo = $.fn.zTree.init($(#cityTree),setting););或取消勾选默认值为null;onClick是用于捕获节点被点击的事件回调函数,如果设置了beforeClick方法,且返回 false,将无法触发 onClick 事件回调函数,默认值为null;async,里面配置点击触发执行的action,当所有相关配置配好之后进行初始化ztree对象,下面展示Ztree的核心配置代码:3、当用户点击某个身份,执行htm011_tree.action方法,再根据不同的城市ID查询对应省份下的城市,依次循环,ztree实现城市结果效果展示,如图5-6所示图5-6 ztree实现城市目录树5.2.2 景点主题图片添加 后台管理系统图片上传功能设计界面图,如图5-7所示图5-7 图片上传界面实现图片添加设计的主要思路是,用户选择的了需要添加的图片之后,到后台代码里随机生成规范式的路径字符串,程序将能够访问的路径串存入到对应的图片数据表,同时将文件信息写入到畅途网的图片管理器当中,后台管理系统对图片上传管理进行了统一规范的控制,以便于用户操作和执行规范,如图5-8是用户从后台添加图片使用步骤。图5-8 后台图片添加步骤其中上传文件JSP标签代码如下:选择文件*后台拿到图片信息进行进行上传的核心代码如图5-10所示:/* 图片上传服务器 */public void uploadImage(EcmPictureNew picture) throws IOException if (picUrl != null) String fileType = picUrl.getPath();if (fileType.indexOf(.) 0) tag = false;msg = 图片类型错误; else BufferedImage bufreader = ImageIO.read(picUrl);String realpath= ServletActionContext.getServletContext().getRealPath(/images);File tempFile = new File(realpath);SimpleDateFormat dateformat = new SimpleDateFormat(yyyyMMddHHmmss);图5-10 后台上传图片核心代码(接上页图片上传核心代码)if (!tempFile.exists()tempFile.mkdirs();/ 防止重复生成四个随机数,置于图片名称char randomStr = 0, 1, 2, 3, 4, a, b, c, d ;StringBuffer buf = new StringBuffer();for (int i = 0; i 4; i+) buf.append(randomStrnew Random().nextInt(8);String filename = dateformat.format(new Date() + buf.toString()+ picUrlFileName.substring(picUrlFileName.lastIndexOf(.);File saveFile = new File(tempFile, filename);FileUtils.copyFile(picUrl, saveFile);String picpath = /images/ + filename;picture.setPictureUrl(picpath);/ 5.3 景点管理5.3.1 数据分页展示ControllerScope(prototype)SuppressWarnings(serial)public class Htm009ThemeAction extends ActionSupport implements ActionResult, ServletRequestAware private HttpServletRequest request;private String tag;private String msg;Autowired用户操作选择左边的城市,根据城市查询该城市下的所有景点展示出来,编写htm008TouristAction类,继承畅途网后台常用接口ActionResult(该接口涉及常用的增删改查方法),添加Spring注解Controller(用于标注控制层组件)和Scope(prototype)(用于每次对该bean的请求都会创建一个新的实例,一般情况下,有状态的bean使用该scope),封装景点信息的类HtmTouristsVO(改类包含景点的基本信息的属性,如景点名称,地址等),在编写List方法,返回“list”,方法内执行DAO层查询SQL,讲结果放入List中,最终返回给前台页面进行分页展示。核心代码如下:(接上页列表展示页面)Htm009ThemeService htm009ThemeService;Overridepublic String list() throws Exception String page = request.getParameter(page);String rowNum = request.getParameter(rowNum);if (page = null | !page.matches(d+) page = 1;if (rowNum = null | !rowNum.matches(d+) rowNum = 20;String total = 0;String whereCase = ;List theme = null;/ 顺带查询if (true.equals(request.getAttribute(queryFlag) whereCase = request.getAttribute(whereCase).toString();theme = htm009ThemeService.themeList(Integer.parseInt(page), Integer.parseInt(rowNum), whereCase);total = htm009ThemeService.getThemeListCount(whereCase); else if (!.equals(request.getParameter(whereCase) & request.getParameter(whereCase) != null) whereCase=URLDecoder.decode(request.getParameter(whereCase), utf-8);theme = htm009ThemeService.themeList(Integer.parseInt(page), Integer.parseInt(rowNum), whereCase);total = htm009ThemeService.getThemeListCount(whereCase); else /进入service层数据处理theme = htm009ThemeService.themeList(Integer.parseInt(page), Integer.parseInt(rowNum), whereCase);total = htm009ThemeService.getThemeListCount(whereCase); /页面塞入返回值request.setAttribute(theme, theme);request.setAttribute(page, page);request.setAttribute(rowNum, rowNum);request.setAttribute(total, total);request.setAttribute(whereCase, URLEncoder.encode(URLEncoder.encode(whereCase, UTF-8), UTF-8);return LIST;前台页面展示使用畅途网后台封装写好的标签技术ttstag中的dataGrid标签,页面展示只需要配置标签的参数即可循环遍历list里面的数据,如图5-10为htm008_tourist_list.jsp中的列表展示代码:其中dbclik鼠标双击js方法,titleWidth为列宽长度设置,valueList为查询后的数据List集合,align为对齐方法,methodType为要显示的数据字段,rowNum,total,page是用来自动分页的数据,actionName,当页面刷新或者执行翻页时执行action方法。如图5-9 为景点数据列表展示的页面图5-9 景点数据列表展示5.3.2 添加操作者想要添加一条数据则需要重新展示另外一个页面,在XX_List.jsp页面上定义添加的JS方法add(),按钮触发该方法执行到后台action类的goToAdd()方法,返回“preAdd”,最后有struts-htm.xml配置文件中个信息拦截,跳到添加页面,配置文件信息为:jsp/htm/htm008/htm008_tourist_add.jsp添加页面主要展示用户需要填写的添加信息,如图5-10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年鹤壁辅警招聘考试真题及一套答案详解
- 2023年鄂州辅警协警招聘考试备考题库及答案详解(夺冠系列)
- 2023年黑河辅警招聘考试题库附答案详解(预热题)
- 2024年东莞辅警协警招聘考试真题含答案详解(模拟题)
- 2023年陇南辅警协警招聘考试真题及一套答案详解
- 2023年甘孜藏族自治州辅警招聘考试题库及答案详解(夺冠)
- 2024年屏东县辅警招聘考试真题及答案详解(必刷)
- 2023年黑河辅警协警招聘考试真题含答案详解(突破训练)
- 2023年芜湖辅警协警招聘考试备考题库含答案详解(巩固)
- 2024年南宁辅警协警招聘考试真题含答案详解(精练)
- 2025至2030中国运输管理软件行业项目调研及市场前景预测评估报告
- 医院检验科标本采集
- 2025年注册验船师考试船舶检验专业英语词汇试卷
- 维生素d教学课件
- 2025年中国电信内部转正考试题及答案
- 2025年核安全专业技术培训班结业考试试题(附答案)
- 毕节物业收费管理办法
- 2025至2030中国化妆品检测行业市场深度调研及投资策略及有效策略与实施路径评估报告
- 2025年6月黑吉辽蒙高考地理真题完全解读
- 2025年连云港市中考英语试卷真题(含答案解析)
- DB51∕T 3239-2024 危险化学品安全生产数据交换规范
评论
0/150
提交评论