1.引言
随着我国人们生活水平的不断提高,旅游逐渐成为人们工作之余,进行放松压力,调节情绪的首要选择。近几年,我国旅游游客规模不断扩大,使旅游业得到快速发展,但也带来了更激烈竞争。面对更复杂的旅游业务需求,现在旅游业必须扩大对当地旅游资源的宣传力度,采用更先进的技术来完成日常的管理,为游客提供更优良的服务,帮
助游客在出行时快捷、方便地查询到旅游目的地的景点、酒店、交通情况。这将提高城市旅游形象和旅游服务水平。因此建立对旅游信息资源进行整合和管理的信息系统,才能强化当地旅游业的内部管理,使运转更合理高效,提高旅游的服务质量。
计算机和网络技术快速发展,使其在社会各行各业的应用得到普及,越来越多的行业都采用先进的计算网络技术来管理行业信息,人类社会已经进入到了信息化的崭新时代。目前,我国旅游业信息化的进程缓慢,传统的城市旅游宣传和管理方式大多采用人工完成,造成了人力和物力资源的浪费。旅游信息管理系统的开发和使用,能借助信息化技术的优势,使工作人员从繁琐手工工作方式中解脱出来,提高对旅游信息的管理效率,方便及时地实现游客和旅游工作人员之间的交户,方便管理人员和旅行社及时、准确地了解游客的需求,提供更高质量的服务,可以使旅游城市、风景区在激烈的竞争中取得优势,扩大宣传力度,提高宣传效果。
本论文基于旅游管理的服务一体化,信息综合化的需求,设计并开发的一套旅游资源进行信息管理的系统。首先描述了旅游信息管理系统的开发背景、国内外旅游信息化的现状;接着介绍了系统开发所采用的技术和相关工具;其次对系统面向的用户,系统管理员和游客的需求进行了分析;再次进行了系统的总体设计,通过对旅游信息资源的分类整理,以旅游所涉及信息的具体内容来来划分系统中的功能模块,并对各功能模块进行详细设计。系统后台主要模块包括:用户管理、首页、旅游景点、旅游线路、酒店住宿、舌尖美食、旅游攻略、旅游帮组等功能,开发了系统管理员对旅游相关信息的管理、发布等后台功能。而在系统前台,提供了游客和注册用户对旅游相关信息的浏览功能,并为注册用户实现了酒店、线路等预订功能。在系统实现时,采用三层 B/S 架构进行开发,应用基于 Java 平台的开发工具,采用 mysql 作为后台数据库管理平台进行系统的开发。并在系统开发完成后,进行了系统主要模块的测试。测试结果表示,本文所设计开发的系统能够满足用户的需求。该系统的应用将可以强化城市旅游的内部管理,提高工作效率和服务质量。
2.开发技术
2.1B/S架构
B/S结构(Browser/Server,即浏览器/服务器结构)是一种常见的软件架构模式,用于构建Web应用程序。在B/S结构中,浏览器充当客户端,向服务器发出请求,并显示服务器返回的结果。
以下是B/S结构的几个关键组件和描述:
(1)客户端(浏览器):客户端通过浏览器与用户交互,向服务器发送请求,并将服务器返回的结果显示给用户。浏览器负责解析和渲染HTML、CSS和JavaScript等网页资源,呈现给用户进行浏览。
(2)服务器(应用服务器):服务器接收来自客户端的请求,并根据请求的内容生成响应。它负责处理业务逻辑、与后端数据库交互、生成动态页面和数据等。服务器通常使用编程语言和框架(如Java和Spring、Python和Django等)来处理请求。
(3)数据库服务器:数据库服务器用于存储和管理应用程序的数据。服务器可以通过访问数据库来获取、修改和存储数据。数据库通常使用关系型数据库系统如MySQL、Oracle或非关系型数据库系统如MongoDB等。
(4)网络通信:B/S结构通过网络进行通信。客户端通过HTTP协议将请求发送给服务器,服务器通过HTTP响应将结果返回给客户端。这种基于HTTP协议的通信使得B/S结构具有跨平台和跨网络的特性。
在B/S结构中,客户端只需要一个浏览器,而不需要安装复杂的应用程序。这使得应用程序的部署和维护相对简单。此外,通过使用网页技术(如HTML、CSS和JavaScript),可以实现丰富的用户界面和交互效果。
总而言之,B/S结构是一种基于浏览器和服务器的软件架构模式,适用于构建Web应用程序。通过简化客户端的部署和依赖,B/S结构提供了一种灵活、跨平台的方式来开发和交付应用程序。
2.2MVC模式
MVC(Model-View-Controller)是一种常见的软件设计模式,用于分离应用程序的关注点和逻辑。它将应用程序分解为三个主要组件:模型(Model)、视图(View)和控制器(Controller),每个组件有其特定的职责和功能。
以下是MVC模式中各个组件的功能和描述:
(1)模型(Model):模型代表应用程序的数据和业务逻辑。它负责获取、保存和处理数据,并提供与数据相关的方法和操作。模型并不关心数据的展示方式或如何与用户交互,它只关注数据的管理和处理。
(2)视图(View):视图是应用程序的用户界面,在模型中的数据进行展示。视图负责展示和呈现数据给用户,以及接收用户的输入。它通常是由HTML、CSS和图形用户界面(GUI)等技术实现的,用于以可视化的方式显示数据。
(3)控制器(Controller):控制器协调模型和视图之间的交互,并处理用户的输入和操作。它接收来自用户界面的输入,根据需要调用模型进行数据处理,并将处理结果传递给视图进行显示。控制器还负责处理应用程序的业务逻辑,如验证和处理用户输入、路由请求等。
MVC模式的优点包括:
- 分离关注点:MVC模式将应用程序分解成不同的组件,使其职责和关注点分离。这样可以提高代码的可维护性、可重用性和可测试性。
- 可扩展性:每个组件都有其特定的职责,使得应用程序更容易升级和扩展。例如,可以更改视图的实现方式而不影响模型和控制器,或者添加新的控制器来处理新的业务逻辑。
- 多个视图:MVC模式可以支持多个视图,使得相同的数据可以以不同的方式呈现给用户。这样可以实现多平台或多设备的支持,提供更好的用户体验。
MVC模式在各种应用程序中得到广泛应用,特别是Web应用程序和桌面应用程序。它提供了一种结构化和可维护的方式来组织和管理应用程序的逻辑和用户界面。
2.3Java Web开发技术
Java Web开发涉及多种技术和框架,用于构建功能强大、可扩展和安全的Web应用程序。以下是一些常用的Java Web开发技术:
(1)Java Servlet:Java Servlet是用于处理HTTP请求和响应的Java编程接口。它可以接收和响应请求,处理业务逻辑,并生成动态网页内容。Servlet通常作为Java Web应用程序的控制器来处理用户请求。
(2)Java Server Pages(JSP):JSP是一种动态网页技术,允许将Java代码嵌入到HTML模板中。JSP在服务器端执行,当客户端请求访问时,动态生成HTML页面并将其发送到客户端。
(3)JavaServer Faces(JSF):JSF是一种Java Web应用程序框架,用于构建用户界面。它提供了一套丰富的标签库和组件,用于创建交互式的用户界面,并支持事件驱动的编程模型。
(4)Spring MVC:Spring MVC是Spring框架的一部分,用于构建基于模型-视图-控制器(MVC)设计模式的Web应用程序。它提供了一个灵活和可扩展的框架,用于处理用户请求、渲染视图和管理业务逻辑。
(5)Hibernate:Hibernate是一个Java持久化框架,用于将对象映射到关系型数据库中。它提供了对象关系映射(ORM)功能,隐藏了底层数据库操作的复杂性,简化了数据访问层的开发。
(6)Spring Boot:Spring Boot是一个用于快速构建Spring应用程序的框架。它简化了Spring的配置和部署,提供了一系列的自动化配置,使得开发人员能够更专注于业务逻辑的开发。
(7)RESTful Web服务:REST(Representational State Transfer)是一种用于构建可伸缩和可维护的Web服务的架构风格。Java提供了多个技术和框架,如JAX-RS和Spring Web等,用于构建RESTful Web服务。
总的来说,Java Web开发技术提供了丰富的工具和框架,用于开发高性能、安全可靠的Web应用程序。通过使用Java Servlet、JSP、Spring MVC、Hibernate等技术,开发人员可以创建功能强大的Web应用程序,并实现与数据库的交互、用户界面的构建和业务逻辑的处理。
3.功能设计
在概要设计时,要按照前面所完成的系统需求分析的结果和文档信息,定义系统的主要功能模块。在本次设计的系统中,功能分为前台展示和后台管理两大部分,即景点信息的后台维护和前台检索;旅游路线的后台维护和前台展示检索;酒店信息的后台维护及前台检索、预订。
本节对系统部分功能模块的结构再进一步细化。
(1)用户信息管理模块
用户信息管理模块分为后台管理员信息的维护模块和前台注册用户的维护模块,并提供对各类用户的权限分配功能。
用户信息维护模块又分为注册用户信息维护和管理员信息维护子功能。注册用户信息维护可完成对前台系统注册的游客信息的检索和操纵处理功能,而管理员信息维护可在后台进行管理员的添加、以及后续的修改、删除等维护功能,而其中对用户信息的修改,一般是指对用户密码的修改。
(2)旅游景点信息维护模块
系统中的旅游景点信息维护可以对本地景点信息进行维护,可在前台实现景点信息的检索和浏览,在后台具有:景点信息查询、景点信息添加、景点信息修改和删除功能。景点信息检索或查询:可以按本地景点的名称或景点所属类型查询目标景点,也可以列出本地全部的景点。当选中某一景点后,可查看该景点的介绍,包括地理位置、到达的公交车的信息等。景点信息添加:可增加新的景点的相关信息,录入信息包括:景点的名称、位置、介绍、特点、可达公交车等。
景点信息修改:当选中某一个已经录入的景点后,可打开修改页面,对该景点信息进行修改,除景点名称外,其他信息均可进行修改。
景点信息删除:删除选中的景点信息,可删除一个景点,也可同时选中的多个景点。
旅游景点信息维护模块的应用意义在于当管理在进行旅游景点信息维护时,能够快捷地将景点信息添加到系统中,同时对景点的相关信息进行维护,并与后点的旅游信息数据库连接,将景点信息及时存放到旅游信息数据库中。而访问前台系统的用户能对后台管理员所添加、更新的景点信息进行及时、方便地浏览。
(3)酒店信息维护模块
本维护模块实现本地主要酒店的信息维护功能。具体来说,包括当时酒店信息查询模块、酒店信息添加模块、酒店信息修改模块和酒店信息删除模块。在进行酒店信息查询时,可根据酒店的名称、级别进行查询,也可显示系统全部酒店信息,并可根据入住的酒店信息查询到就近的景点信息。
系统管理员可通过酒店信息添加模块向系统数据库增加新的酒店信息,在新增酒店信息时,需要维护该酒店的名称、级别、就近景点信息、所提供房型等相关信息。另外,系统还提供了对酒店信息进行修改和删除的功能。
4.实现效果展示
后台系统登录界面是系统管理员访问旅游信息管理系统,进行后台信息维护的入口,是保证为合法用户提供系统的有效访问,而防止用户的越权访问或非法用户的访问的有效手段。旅游信息管理后台系统的登录界面实现效果如图所示。
当用户输入正确的帐户和密码后,会进入后台系统,显示如图
系统主界面中菜单栏显示了后台系统的功能,在本文的旅游信息管理系统中,完成了用户管理、景点信息管理、线路信息管理、酒店信息管理几个主要功能,用户通过选择菜单项,可进入相应的系统功能界面。
用户管理
旅游线路管理及添加管理
旅游线路分类管理
出游方式管理
景点管理
酒店管理
线路预订管理
酒店预订管理
本节对旅游信息管理系统中前台系统的部分功能的实现效果进行介绍。
用户注册
旅游景点页面
旅游景点详细页面
旅游景点线路预订页面
5.参考文章
6.核心代码
@Controller public class AdminUserController extends SimpleController { @Autowired private UsersService usersService; @Override @RequestMapping("/admin/login.do") public void mapping(HttpServletRequest request, HttpServletResponse response) { super.mappingMethod(request, response); } public void login() { String usertype = request.getParameter("usertype"); String validcode = (String) request.getSession().getAttribute( "validcode"); String inputvalidcode = request.getParameter("validcode"); if (validcode != null && !validcode.equals(inputvalidcode)) { System.out.println("系统验证错误"); request.setAttribute("errmsg", "<img src=\"images/error.gif\"/>系统验证码错误"); // 分发请求参数 dispatchParams(request, response); forward("/admin/login.jsp"); return; } System.out.println("验证码=" + validcode); if (usertype != null && usertype.equals("0")) { adminLogin(); } } private void adminLogin() { String username = request.getParameter("username"); String password = request.getParameter("password"); Users u = (Users) usersService.load(" where username='" + username + "' and password='" + password + "'"); if (u == null) { dispatchParams(request, response); request.setAttribute("errmsg", "<img src=\"images/error.gif\"/>用户与密码不匹配"); System.out.println("系统用户登录失败"); forward("/admin/login.jsp"); } HttpSession session = request.getSession(); u.setLogtimes(u.getLogtimes() + 1); usersService.update(u); session.setAttribute("users", u); redirect("/admin/index.jsp"); } } @Controller public class AreacityController extends SimpleController{ @Autowired private AreacityService areacitySrv=null; @Override @RequestMapping("/admin/areacitymanager.do") public void mapping(HttpServletRequest request, HttpServletResponse response) { mappingMethod(request,response); } /******************************************************** ******************????????***************************** *********************************************************/ public void delete() { String[] ids = request.getParameterValues("ids"); if (ids == null) return; String spliter = ","; String SQL = " where id in(" + join(spliter, ids) + ")"; System.out.println("sql=" + SQL); areacitySrv.delete(SQL); } /************************************************************* ****************????????****************************** **************************************************************/ public void save() { String forwardurl=request.getParameter("forwardurl"); //????url String errorurl=request.getParameter("errorurl"); String cityname=request.getParameter("cityname"); SimpleDateFormat sdfareacity=new SimpleDateFormat("yyyy-MM-dd"); Areacity areacity=new Areacity(); areacity.setCityname(cityname==null?"":cityname); //???? Boolean validateresult=areacitySrv.isExist( "where cityname='"+cityname+"'"); if(validateresult){ try { request.setAttribute("errormsg","<label class='error'>??????</label>"); request.setAttribute("areacity", areacity); request.setAttribute("actiontype", "save"); request.getRequestDispatcher(errorurl).forward(request, response); } catch (Exception e) { e.printStackTrace(); } return; } areacitySrv.save(areacity); if(forwardurl==null){ forwardurl="/admin/areacitymanager.do?actiontype=get"; } redirect(forwardurl); } /****************************************************** ***********************??????********************* *******************************************************/ public void update() { String forwardurl=request.getParameter("forwardurl"); String id=request.getParameter("id"); if(id==null) return; Areacity areacity=areacitySrv.load(new Integer(id)); if(areacity==null) return; String cityname=request.getParameter("cityname"); SimpleDateFormat sdfareacity=new SimpleDateFormat("yyyy-MM-dd"); areacity.setCityname(cityname); areacitySrv.update(areacity); if(forwardurl==null){ forwardurl="/admin/areacitymanager.do?actiontype=get"; } redirect(forwardurl); } /****************************************************** ***********************??????********************* *******************************************************/ public void load() { // String id=request.getParameter("id"); String actiontype="save"; dispatchParams(request, response); if(id!=null) { Areacity areacity=areacitySrv.load("where id="+id); if(areacity!=null) { request.setAttribute("areacity", areacity); } actiontype="update"; request.setAttribute("id", id); } request.setAttribute("actiontype", actiontype); String forwardurl=request.getParameter("forwardurl"); System.out.println("forwardurl="+forwardurl); if(forwardurl==null){ forwardurl="/admin/areacityadd.jsp"; } forward(forwardurl); } /****************************************************** ***********************????????********************* *******************************************************/ public void get(){ String filter="where 1=1 "; String cityname=request.getParameter("cityname"); if(cityname!=null) filter+=" and cityname like '%"+cityname+"%' "; // int pageindex = 1; int pagesize = 10; // ?????? String currentpageindex = request.getParameter("currentpageindex"); // ?????? String currentpagesize = request.getParameter("pagesize"); // ????? if (currentpageindex != null) pageindex = new Integer(currentpageindex); // ??????? if (currentpagesize != null) pagesize = new Integer(currentpagesize); List<Areacity> listareacity = areacitySrv.getPageEntitys( filter,pageindex, pagesize); int recordscount = areacitySrv.getRecordCount(filter == null ? "" : filter); request.setAttribute("listareacity", listareacity); PagerMetal pm = new PagerMetal(recordscount); //???? pm.setPagesize(pagesize); //??????? pm.setCurpageindex(pageindex); // ?????? request.setAttribute("pagermetal", pm); //?????? dispatchParams(request, response); String forwardurl=request.getParameter("forwardurl"); System.out.println("forwardurl="+forwardurl); if(forwardurl==null){ forwardurl="/admin/areacitymanager.jsp"; } forward(forwardurl); } } @Controller public class CommentController extends SimpleController { @Autowired private CommentService commentSrv=null; @Override @RequestMapping("/admin/commentmanager.do") public void mapping(HttpServletRequest request, HttpServletResponse response) { mappingMethod(request,response); } /******************************************************** ****************** 信息注销监听支持***************************** *********************************************************/ public void delete() { String id = request.getParameter("id"); commentSrv.delete(" where id=" + id); get(); } /************************************************************* **************** 保存动作监听支持****************************** **************************************************************/ public void save() { String photo = request.getParameter("photo"); String commentren = request.getParameter("currenthy"); String commentcontent = request.getParameter("commentcontent"); String xtype = request.getParameter("xtype"); String belongid = request.getParameter("belongid"); String istopic=request.getParameter("istopic"); String topicid=request.getParameter("topicid"); Comment comment = new Comment(); comment.setPhoto(photo); comment.setCommenttime(new Date()); comment.setCommentren(commentren == null ? "" : commentren); comment.setCommentcontent(commentcontent == null ? "" : commentcontent); comment.setXtype(xtype == null ? "" : xtype); comment.setBelongid(belongid == null ? "" : belongid); if(istopic!=null) comment.setTopicid(new Integer(topicid)); else comment.setTopicid(0); if(topicid!=null) comment.setIstopic(new Integer(istopic)); else comment.setTopicid(0); commentSrv.save(comment); String forwardurl = request.getParameter("forwardurl"); redirect(forwardurl); } /****************************************************** *********************** 加载内部支持********************* *******************************************************/ public void load() { // String id = request.getParameter("id"); String actiontype = "save"; if (id != null) { Comment comment = commentSrv.load( "where id="+ id); if (comment != null) { request.setAttribute("comment", comment); } actiontype = "update"; } request.setAttribute("id", id); request.setAttribute("actiontype", actiontype); try { request.getRequestDispatcher("commentadd.jsp").forward(request, response); } catch (ServletException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /****************************************************** *********************** 数据绑定内部支持********************* *******************************************************/ public void get() { String filter = ""; // String commentren = request.getParameter("commentren"); if (commentren != null) filter = " where commentren like '%" + commentren + "%' "; int pageindex = 1; int pagesize = 10; // 获取当前分页 String currentpageindex = request.getParameter("currentpageindex"); // 当前页面尺寸 String currentpagesize = request.getParameter("pagesize"); // 设置当前页 if (currentpageindex != null) pageindex = new Integer(currentpageindex); // 设置当前页尺寸 if (currentpagesize != null) pagesize = new Integer(currentpagesize); List<Comment> listcomment = commentSrv.getPageEntitys(filter,pageindex, pagesize); int recordscount = commentSrv.getRecordCount(filter == null ? "" : filter); request.setAttribute("listcomment", listcomment); PagerMetal pm = new PagerMetal(recordscount); // 设置尺寸 pm.setPagesize(pagesize); // 设置当前显示页 pm.setCurpageindex(pageindex); // 设置分页信息 request.setAttribute("pagermetal", pm); // 分发请求参数 dispatchParams(request, response); try { request.getRequestDispatcher("/admin/commentmanager.jsp").forward( request, response); } catch (ServletException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } @Controller public class CommentController extends SimpleController { @Autowired private CommentService commentSrv=null; @Override @RequestMapping("/admin/commentmanager.do") public void mapping(HttpServletRequest request, HttpServletResponse response) { mappingMethod(request,response); } /******************************************************** ****************** 信息注销监听支持***************************** *********************************************************/ public void delete() { String id = request.getParameter("id"); commentSrv.delete(" where id=" + id); get(); } /************************************************************* **************** 保存动作监听支持****************************** **************************************************************/ public void save() { String photo = request.getParameter("photo"); String commentren = request.getParameter("currenthy"); String commentcontent = request.getParameter("commentcontent"); String xtype = request.getParameter("xtype"); String belongid = request.getParameter("belongid"); String istopic=request.getParameter("istopic"); String topicid=request.getParameter("topicid"); Comment comment = new Comment(); comment.setPhoto(photo); comment.setCommenttime(new Date()); comment.setCommentren(commentren == null ? "" : commentren); comment.setCommentcontent(commentcontent == null ? "" : commentcontent); comment.setXtype(xtype == null ? "" : xtype); comment.setBelongid(belongid == null ? "" : belongid); if(istopic!=null) comment.setTopicid(new Integer(topicid)); else comment.setTopicid(0); if(topicid!=null) comment.setIstopic(new Integer(istopic)); else comment.setTopicid(0); commentSrv.save(comment); String forwardurl = request.getParameter("forwardurl"); redirect(forwardurl); } /****************************************************** *********************** 加载内部支持********************* *******************************************************/ public void load() { // String id = request.getParameter("id"); String actiontype = "save"; if (id != null) { Comment comment = commentSrv.load( "where id="+ id); if (comment != null) { request.setAttribute("comment", comment); } actiontype = "update"; } request.setAttribute("id", id); request.setAttribute("actiontype", actiontype); try { request.getRequestDispatcher("commentadd.jsp").forward(request, response); } catch (ServletException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /****************************************************** *********************** 数据绑定内部支持********************* *******************************************************/ public void get() { String filter = ""; // String commentren = request.getParameter("commentren"); if (commentren != null) filter = " where commentren like '%" + commentren + "%' "; int pageindex = 1; int pagesize = 10; // 获取当前分页 String currentpageindex = request.getParameter("currentpageindex"); // 当前页面尺寸 String currentpagesize = request.getParameter("pagesize"); // 设置当前页 if (currentpageindex != null) pageindex = new Integer(currentpageindex); // 设置当前页尺寸 if (currentpagesize != null) pagesize = new Integer(currentpagesize); List<Comment> listcomment = commentSrv.getPageEntitys(filter,pageindex, pagesize); int recordscount = commentSrv.getRecordCount(filter == null ? "" : filter); request.setAttribute("listcomment", listcomment); PagerMetal pm = new PagerMetal(recordscount); // 设置尺寸 pm.setPagesize(pagesize); // 设置当前显示页 pm.setCurpageindex(pageindex); // 设置分页信息 request.setAttribute("pagermetal", pm); // 分发请求参数 dispatchParams(request, response); try { request.getRequestDispatcher("/admin/commentmanager.jsp").forward( request, response); } catch (ServletException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } @Controller public class CystyleController extends SimpleController{ @Autowired private CystyleService cystyleSrv=null; @Override @RequestMapping("/admin/cystylemanager.do") public void mapping(HttpServletRequest request, HttpServletResponse response) { mappingMethod(request,response); } /******************************************************** ******************????????***************************** *********************************************************/ public void delete() { String[] ids = request.getParameterValues("ids"); if (ids == null) return; String spliter = ","; String SQL = " where id in(" + join(spliter, ids) + ")"; System.out.println("sql=" + SQL); cystyleSrv.delete(SQL); } /************************************************************* ****************????????****************************** **************************************************************/ public void save() { String forwardurl=request.getParameter("forwardurl"); //????url String errorurl=request.getParameter("errorurl"); String name=request.getParameter("name"); SimpleDateFormat sdfcystyle=new SimpleDateFormat("yyyy-MM-dd"); Cystyle cystyle=new Cystyle(); cystyle.setName(name==null?"":name); //???? Boolean validateresult=cystyleSrv.isExist( "where name='"+name+"'"); if(validateresult){ try { request.setAttribute("errormsg","<label class='error'>????????</label>"); request.setAttribute("cystyle", cystyle); request.setAttribute("actiontype", "save"); request.getRequestDispatcher(errorurl).forward(request, response); } catch (Exception e) { e.printStackTrace(); } return; } cystyleSrv.save(cystyle); if(forwardurl==null){ forwardurl="/admin/cystylemanager.do?actiontype=get"; } redirect(forwardurl); } /****************************************************** ***********************??????********************* *******************************************************/ public void update() { String forwardurl=request.getParameter("forwardurl"); String id=request.getParameter("id"); if(id==null) return; Cystyle cystyle=cystyleSrv.load(new Integer(id)); if(cystyle==null) return; String name=request.getParameter("name"); SimpleDateFormat sdfcystyle=new SimpleDateFormat("yyyy-MM-dd"); cystyle.setName(name); cystyleSrv.update(cystyle); if(forwardurl==null){ forwardurl="/admin/cystylemanager.do?actiontype=get"; } redirect(forwardurl); } /****************************************************** ***********************??????********************* *******************************************************/ public void load() { // String id=request.getParameter("id"); String actiontype="save"; dispatchParams(request, response); if(id!=null) { Cystyle cystyle=cystyleSrv.load("where id="+id); if(cystyle!=null) { request.setAttribute("cystyle", cystyle); } actiontype="update"; request.setAttribute("id", id); } request.setAttribute("actiontype", actiontype); String forwardurl=request.getParameter("forwardurl"); System.out.println("forwardurl="+forwardurl); if(forwardurl==null){ forwardurl="/admin/cystyleadd.jsp"; } forward(forwardurl); } /****************************************************** ***********************????????********************* *******************************************************/ public void get(){ String filter="where 1=1 "; String name=request.getParameter("name"); if(name!=null) filter+=" and name like '%"+name+"%' "; // int pageindex = 1; int pagesize = 10; // ?????? String currentpageindex = request.getParameter("currentpageindex"); // ?????? String currentpagesize = request.getParameter("pagesize"); // ????? if (currentpageindex != null) pageindex = new Integer(currentpageindex); // ??????? if (currentpagesize != null) pagesize = new Integer(currentpagesize); List<Cystyle> listcystyle = cystyleSrv.getPageEntitys( filter,pageindex, pagesize); int recordscount = cystyleSrv.getRecordCount(filter == null ? "" : filter); request.setAttribute("listcystyle", listcystyle); PagerMetal pm = new PagerMetal(recordscount); //???? pm.setPagesize(pagesize); //??????? pm.setCurpageindex(pageindex); // ?????? request.setAttribute("pagermetal", pm); //?????? dispatchParams(request, response); String forwardurl=request.getParameter("forwardurl"); System.out.println("forwardurl="+forwardurl); if(forwardurl==null){ forwardurl="/admin/cystylemanager.jsp"; } forward(forwardurl); } } @Controller public class IndexcolumnsController extends SimpleController { @Autowired private IndexcolumnsService icSrv=null; @Autowired private LanmuService lanmuSrv=null; @Override @RequestMapping("/admin/indexcolumnsmanager.do") public void mapping(HttpServletRequest request, HttpServletResponse response) { mappingMethod(request,response); } /******************************************************** ****************** 信息注销监听支持***************************** *********************************************************/ public void delete() { String[] ids = request.getParameterValues("ids"); if (ids == null) return; String spliter = ","; String SQL = " delete from indexcolumns where id in(" + join(spliter, ids) + ")"; System.out.println("sql=" + SQL); Adapter adapter=new MybatisAdapter("applicationContext.xml", "sqlSessionFactoryBean"); SimpleJdbc dapper=new SimpleJdbc(adapter); try { dapper.update(SQL); } catch (SQLException e) { e.printStackTrace(); } } /************************************************************* **************** 保存动作监听支持****************************** **************************************************************/ public void save() { String forwardurl = request.getParameter("forwardurl"); // 验证错误url String suzuid=request.getParameter("suzuid"); String errorurl = request.getParameter("errorurl"); String xtype=request.getParameter("xtype"); if(suzuid!=null) { Lanmu temspc=lanmuSrv.load("where id="+suzuid); if(temspc!=null&&xtype!=null&&xtype.equals("1")) { Indexcolumns indexcolumns = new Indexcolumns(); indexcolumns.setColdes(temspc.getTitle()); indexcolumns.setColid(temspc.getId()); indexcolumns.setXtype("资讯"); indexcolumns.setShowstyle("图片"); indexcolumns.setLayout("1"); indexcolumns.setWidth("100%"); icSrv.save(indexcolumns); } } if (forwardurl == null) { forwardurl = "/admin/indexcolumnsmanager.do?actiontype=get"; } redirect(forwardurl); } /****************************************************** *********************** 更新内部支持********************* *******************************************************/ public void update() { String forwardurl = request.getParameter("forwardurl"); String id = request.getParameter("id"); if (id == null) return; Indexcolumns indexcolumns = icSrv.load(new Integer(id)); if (indexcolumns == null) return; String coldes = request.getParameter("coldes"); String colid = request.getParameter("colid"); String xtype = request.getParameter("xtype"); String showstyle = request.getParameter("showstyle"); String layout=request.getParameter("layout"); String width=request.getParameter("width"); indexcolumns.setColdes(coldes); indexcolumns.setColid(colid == null ? 0 : new Integer(colid)); indexcolumns.setXtype(xtype); indexcolumns.setShowstyle(showstyle); indexcolumns.setLayout(layout); indexcolumns.setWidth(width); icSrv.update(indexcolumns); if (forwardurl == null) { forwardurl = "/admin/indexcolumnsmanager.do?actiontype=get"; } redirect(forwardurl); } /****************************************************** *********************** 加载内部支持********************* *******************************************************/ public void load() { // String id = request.getParameter("id"); String actiontype = "save"; dispatchParams(request, response); if (id != null) { Indexcolumns indexcolumns = (Indexcolumns) icSrv.load("where id=" + id); if (indexcolumns != null) { request.setAttribute("indexcolumns", indexcolumns); } actiontype = "update"; request.setAttribute("id", id); } request.setAttribute("actiontype", actiontype); String forwardurl = request.getParameter("forwardurl"); System.out.println("forwardurl=" + forwardurl); if (forwardurl == null) { forwardurl = "/admin/indexcolumnsadd.jsp"; } try { request.getRequestDispatcher(forwardurl).forward(request, response); } catch (ServletException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /****************************************************** *********************** 数据绑定内部支持********************* *******************************************************/ public void get() { String filter = "where 1=1 "; String coldes = request.getParameter("coldes"); if (coldes != null) filter += " and coldes like '%" + coldes + "%' "; // int pageindex = 1; int pagesize = 10; // 获取当前分页 String currentpageindex = request.getParameter("currentpageindex"); // 当前页面尺寸 String currentpagesize = request.getParameter("pagesize"); // 设置当前页 if (currentpageindex != null) pageindex = new Integer(currentpageindex); // 设置当前页尺寸 if (currentpagesize != null) pagesize = new Integer(currentpagesize); List<Indexcolumns> listindexcolumns = icSrv.getPageEntitys(filter, pageindex, pagesize); int recordscount = icSrv.getRecordCount(filter == null ? "" : filter); request.setAttribute("listindexcolumns", listindexcolumns); PagerMetal pm = new PagerMetal(recordscount); // 设置尺寸 pm.setPagesize(pagesize); // 设置当前显示页 pm.setCurpageindex(pageindex); // 设置分页信息 request.setAttribute("pagermetal", pm); // 分发请求参数 dispatchParams(request, response); String forwardurl = request.getParameter("forwardurl"); System.out.println("forwardurl=" + forwardurl); if (forwardurl == null) { forwardurl = "/admin/indexcolumnsmanager.jsp"; } try { request.getRequestDispatcher(forwardurl).forward(request, response); } catch (ServletException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }