關(guān)鍵詞 MVC;Struts框架;Web;物業(yè)管理系統(tǒng);
0 前言
物業(yè)管理系統(tǒng)是近年來為適應(yīng)小區(qū)建設(shè)和管理而興起的一種新型產(chǎn)業(yè),它的出現(xiàn)為住宅小區(qū)的現(xiàn)代化管理提供了保障。目前,物業(yè)管理系統(tǒng)的開發(fā)方法很多,但多數(shù)系統(tǒng)在開發(fā)中存在系統(tǒng)結(jié)構(gòu)復(fù)雜、代碼重用率低、網(wǎng)頁設(shè)計(jì)和軟件開發(fā)相互制約導(dǎo)致開發(fā)效率低下等不盡人意的地方 [1] 。在系統(tǒng)設(shè)計(jì)過程中,我們綜合考慮系統(tǒng)結(jié)構(gòu)、開發(fā)周期以及代碼重用等方面,決定采用先進(jìn)的J2EE技術(shù)來開發(fā)這個(gè)應(yīng)用系統(tǒng),并全面貫徹MVC(Model-View-Controller)的開發(fā)模式。而Struts作為一個(gè)實(shí)現(xiàn)良好的MVC框架,很好地將應(yīng)用邏輯、處理過程和顯示邏輯分成不同的組件實(shí)現(xiàn),對大型的復(fù)雜的Web系統(tǒng)而言,可大大方便代碼開發(fā)和管理,提高開發(fā)效率。正是鑒于此特性,在設(shè)計(jì)小區(qū)物業(yè)管理系統(tǒng)時(shí),我們采用了基于Struts框架的系統(tǒng)構(gòu)建模式 。
1 Struts 的體系結(jié)構(gòu)
作為一個(gè)實(shí)現(xiàn)良好的MVC框架,Struts對Model、View和Controller都提供了對應(yīng)的實(shí)現(xiàn)組件,圖1所示為Struts體系結(jié)構(gòu)圖。下面從模型、視圖、控制來介紹Struts的體系結(jié)構(gòu) 。
圖1 Struts構(gòu)體系結(jié)圖視圖(View)就是一系列提交到客戶瀏覽器進(jìn)行顯示的JSP文件,是用戶看到并與之交互的界面。在這些界面中沒有業(yè)務(wù)邏輯,也沒有模型信息,只有標(biāo)簽。 模型(Model)表示應(yīng)用程序的狀態(tài)和業(yè)務(wù)邏輯,通常由JavaBean或EJB組件來實(shí)現(xiàn)。 控制器(Controller)的作用是從客戶端接受請求,并且選擇執(zhí)行相應(yīng)的業(yè)務(wù)邏輯,然后把響應(yīng)結(jié)果送回到客戶端。在Struts中Controller由ActionServlet類和Action類來實(shí)現(xiàn)。ActionServlet主要負(fù)責(zé)接受HTTP請求信息,Action類負(fù)責(zé)調(diào)用模型的方法,更新模型的狀態(tài),并幫助控制應(yīng)用程序的流程。mda.com
2 小區(qū)物業(yè)管理系統(tǒng)
2.1 系統(tǒng)功能劃分
小區(qū)物業(yè)管理系統(tǒng)是物業(yè)部門用來對住宅小區(qū)內(nèi)的建筑、住戶、設(shè)備、人員等信息進(jìn)行綜合管理的一個(gè)信息管理系統(tǒng)。根據(jù)客戶要求,系統(tǒng)要能對小區(qū)內(nèi)建筑、公共設(shè)備、住戶等基本信息實(shí)現(xiàn)錄入、修改、查詢和刪除等操作,并且還要實(shí)現(xiàn)包括水、電、煤氣費(fèi)在內(nèi)的各項(xiàng)物業(yè)管理費(fèi)用的統(tǒng)計(jì)、查詢和報(bào)表生成。因此,實(shí)現(xiàn)該物業(yè)管理系統(tǒng)功能模塊圖
圖2 系統(tǒng)功能模塊圖
各模塊實(shí)現(xiàn)的功能
(1)系統(tǒng)管理模塊 系統(tǒng)管理模塊是整個(gè)物業(yè)管理系統(tǒng)的核心,在區(qū)分不同用戶的使用權(quán)限、加強(qiáng)軟件使用安全性和保證數(shù)據(jù)安全方面起著關(guān)鍵的作用。具體包括:用戶管理、用戶授權(quán)、更改密碼、系統(tǒng)設(shè)置、系統(tǒng)初始化、數(shù)據(jù)庫備份、恢復(fù)這幾個(gè)子模塊。
(2)住戶管理模塊 該模塊完成對新增住戶基本信息(姓名、人口、住房面積等)的登記和已有住戶信息的修改、查詢和刪除,是系統(tǒng)最基本的功能。該模塊具體又分為住戶登記、住戶修改、住戶修改、住戶查詢和住戶刪除四個(gè)子模塊。
(3)設(shè)備管理模塊 該模塊實(shí)現(xiàn)對小區(qū)內(nèi)各項(xiàng)公共設(shè)備(如:路燈、排水管等)的管理,為各項(xiàng)設(shè)備建立信息檔案,記錄各設(shè)備檢查“維修“保養(yǎng)記錄。具體又分為設(shè)備登記、設(shè)備報(bào)修、設(shè)備檢查和設(shè)備保養(yǎng)這四個(gè)子模塊。
(4)房產(chǎn)管理模塊 該模塊主要是針對小區(qū)內(nèi)的建筑,實(shí)現(xiàn)對小區(qū)內(nèi)每一棟建筑、每棟建筑內(nèi)的每套住房進(jìn)行管理,考慮到業(yè)主對每個(gè)單元的買賣變更,該模塊還應(yīng)該包括住房房產(chǎn)所有權(quán)的管理。該模塊具體分為:建筑圖紙管理、戶型圖紙管理、房產(chǎn)所有權(quán)管理等。
(5)人事管理模塊 該模塊主要是針對物業(yè)管理部門內(nèi)部的工作人員的,實(shí)現(xiàn)對物業(yè)管理人員、保安/保潔人員的管理。包括:員工信息錄入、查詢、工資管理、員工考勤記錄和員工考核記錄這幾個(gè)子模塊。
(6)收費(fèi)管理模塊 該模塊主要實(shí)現(xiàn)對已經(jīng)入住的住戶進(jìn)行費(fèi)用(物業(yè)管理費(fèi)、水費(fèi)、電費(fèi)和煤氣費(fèi))繳納的各方面管理,具體包括以下幾個(gè)部分:收費(fèi)類別設(shè)置、收費(fèi)項(xiàng)目設(shè)置、計(jì)量單位設(shè)置、表設(shè)置、用戶抄表、應(yīng)收款和收款單等。mda.com
采用B/S模型的多層框架結(jié)構(gòu)開發(fā)的小區(qū)物業(yè)管理系統(tǒng),MVC模式主要對應(yīng)應(yīng)用服務(wù)器的部分,前端響應(yīng)用戶的請求,后端負(fù)責(zé)與數(shù)據(jù)庫服務(wù)器之間的數(shù)據(jù)變換,中間為應(yīng)用邏輯層,負(fù)責(zé)具體業(yè)務(wù)的處理,F(xiàn)依據(jù)Struts框架的3個(gè)基本組成部分:視圖、模型和控制器,簡要描述系統(tǒng)的設(shè)計(jì)過程 。
(1)視圖設(shè)計(jì) 應(yīng)用系統(tǒng)的用戶界面通常由JSP頁面組成。在系統(tǒng)的六個(gè)模塊中,各類信息的添加、刪除、修改和瀏覽都通過JSP頁面進(jìn)行表現(xiàn)。系統(tǒng)在處理每個(gè)數(shù)據(jù)表示主要是用兩個(gè)JSP頁面進(jìn)行表示:一個(gè)頁面用于數(shù)據(jù)的添加、刪除、修改,另一個(gè)頁面用于數(shù)據(jù)的瀏覽。
(2)構(gòu)建模型 Struts應(yīng)用框架通常預(yù)先為每個(gè)應(yīng)用所需要的輸入表單創(chuàng)建一個(gè)ActionForm Bean。如果這些bean定義在ActionMapping配置文件中,Struts控制器Servlet將自動(dòng)執(zhí)行這些預(yù)先設(shè)定的操作。因此,在系統(tǒng)開發(fā)中,首先為每個(gè)模塊建立相應(yīng)的ActionForm Bean,再根據(jù)每個(gè)模塊的實(shí)際功能為每個(gè)Bean定義用戶操作狀態(tài)和視圖中所需要顯示數(shù)據(jù)信息的參數(shù),視圖可以通過操作狀態(tài)的不同進(jìn)行不同的界面表示。
(3)構(gòu)建控制器 在Struts應(yīng)用框架中,中心控制器(ActionServlet)接受所有來自客戶端的請求,并根據(jù)系統(tǒng)的配置文件Struts-config.xml制定用戶HTTP請求到其他Action對象的路徑。中心控制器是由Struts框架本身所提供,在系統(tǒng)開發(fā)中我們無須對ActionServlet進(jìn)行再開發(fā),而負(fù)責(zé)具體業(yè)務(wù)處理的Action類則是系統(tǒng)開發(fā)的重點(diǎn)。 在視圖、模型、控制器對象設(shè)計(jì)完成后,需要編輯兩個(gè)配置文件:web.xml和struts-config.xml,通過它們配置Struts系統(tǒng)中各個(gè)模塊之間的交互。
3 Struts 框架在系統(tǒng)開發(fā)中的應(yīng)用
小區(qū)物業(yè)管理系統(tǒng)是一個(gè)復(fù)雜的大型Web應(yīng)用系統(tǒng),為了能夠清楚地描述Struts在系統(tǒng)開發(fā)中的應(yīng)用,將以收費(fèi)管理模塊中用戶成功登入系統(tǒng)并進(jìn)行數(shù)據(jù)錄入和查詢這一應(yīng)用為例進(jìn)行較詳盡的說明。
在該應(yīng)用中,主要事件包括
(1)提供用戶登錄界面,提示用戶輸入用戶名和密碼,并能夠?qū)τ脩粼诳蛻舳溯斎氲臄?shù)據(jù)進(jìn)行簡單的數(shù)據(jù)格式驗(yàn)證。若登錄成功,轉(zhuǎn)入主操作界面,否則給出錯(cuò)誤提示信息,重新登錄。
(2)由主操作界面轉(zhuǎn)入物業(yè)管理費(fèi)錄入界面,用戶在表單中輸入相關(guān)信息(用戶ID、日期),提交表單。若提交表單成功,則轉(zhuǎn)入確認(rèn)界面,顯示用戶輸入的信息。
(3)由主操作界面轉(zhuǎn)入查詢界面,用戶輸入相關(guān)信息后,查詢出某段時(shí)間內(nèi)該用戶的物業(yè)管理費(fèi)用。
(4)用戶退出系統(tǒng),返回主菜單頁面。