Struts架構在小區物業管理系統中的應用

來源:互聯網
上載者:User
  摘要  Struts提供了一個非常好的MVC架構,在Web應用開發中把介面和商務邏輯分離,提高了代碼的可重用性和靈活性。文中首先介紹了Struts概念和體繫結構,闡述了Struts的工作原理。然後介紹了小區物業管理系統各個功能模組以及整個系統基於Struts的開發流程。最後,通過一個應用樣本,詳細介紹了Struts架構在系統開發中的應用。
  關鍵詞
  MVC;Struts架構;Web;物業管理系統;     前言    物業管理系統是近年來為適應小區建設和管理而興起的一種新型產業,它的出現為住宅小區的現代化管理提供了保障。目前,物業管理系統的開發方法很多,但多數系統在開發中存在系統結構複雜、代碼重用率低、網頁設計和軟體開發相互制約導致開發效率低下等不盡人意的地方。在系統設計過程中,我們綜合考慮系統結構、開發週期以及代碼重用等方面,決定採用先進的J2EE技術來開發這個應用系統,並全面貫徹MVC(Model-View-Controller)的開發模式。而Struts作為一個實現良好的MVC架構,很好地將應用邏輯、處理過程和顯示邏輯分成不同的組件實現,對大型的複雜的Web系統而言,可大大方便代碼開發和管理,提高開發效率。正是鑒於此特性,在設計小區物業管理系統時,我們採用了基於Struts架構的系統構建模式。    Struts 的體繫結構

  作為一個實現良好的MVC架構,Struts對Model、View和Controller都提供了對應的實現組件,圖1所示為Struts體繫結構圖。下面從模型、視圖、控制來介紹Struts的體繫結構。


圖1 Struts構體繫結圖


  視圖(View)就是一系列提交到客戶瀏覽器進行顯示的JSP檔案,是使用者看到並與之互動的介面。在這些介面中沒有商務邏輯,也沒有模型資訊,只有標籤。
  模型(Model)表示應用程式的狀態和商務邏輯,通常由JavaBean或EJB組件來實現。
  控制器(Controller)的作用是從用戶端接受請求,並且選擇執行相應的商務邏輯,然後把響應結果送回到用戶端。在Struts中Controller由ActionServlet類和Action類來實現。ActionServlet主要負責接受HTTP請求資訊,Action類負責調用模型的方法,更新模型的狀態,並協助控制應用程式的流程。
  
小區物業管理系統     1、 系統功能劃分    小區物業管理系統是物業部門用來對住宅小區內的建築、住戶、裝置、人員等資訊進行綜合管理的一個資訊管理系統。根據客戶要求,系統要能對小區內建築、公用裝置、住戶等基本資料實現錄入、修改、查詢和刪除等操作,並且還要實現包括水、電、瓦斯費在內的各項物業管理費用的統計、查詢和報表產生。因此,實現該物業管理系統功能模組圖如下:


圖2 系統功能模組圖

  各模組實現的功能如下:
  (1)系統管理模組
  系統管理模組是整個物業管理系統的核心,在區分不同使用者的使用許可權、加強軟體使用安全性和保證資料安全方面起著關鍵的作用。具體包括:使用者管理、使用者授權、更改密碼、系統設定、系統初始化、Database Backup、恢複這幾個子模組。
  (2)住戶管理模組
  該模組完成對新增住戶基本資料(姓名、人口、房屋面積等)的登記和已有住戶資訊的修改、查詢和刪除,是系統最基本的功能。該模組具體又分為住戶登記、住戶修改、住戶修改、住戶查詢和住戶刪除四個子模組。
  (3)裝置管理模組
  該模組實現對小區內各項公用裝置(如:路燈、排水管等)的管理,為各項裝置建立資訊檔案,記錄各裝置檢查\維修\保養記錄。具體又分為裝置登記、裝置報修、裝置檢查和裝置保養這四個子模組。
  (4)房產管理模組
  該模組主要是針對小區內的建築,實現對小區內每一棟建築、每棟建築內的每套房屋進行管理,考慮到業主對每個單元的買賣變更,該模組還應該包括房屋房產所有權的管理。該模組具體分為:建築圖紙管理、戶型圖紙管理、房產所有權管理等。
  (5)人事管理模組
  該模組主要是針對物業管理部門內部的工作人員的,實現對物業管理員、保安/保潔人員的管理。包括:員工資訊錄入、查詢、工資管理、員工考勤記錄和員工考核記錄這幾個子模組。
  (6)收費管理模組
  該模組主要實現對已經入住的住戶進行費用(物業管理費、水費、電費和瓦斯費)繳納的各方面管理,具體包括以下幾個部分:收費類別設定、收費項目設定、計量單位設定、表設定、使用者抄表、應收款和收款單等。 
  2、
系統開發流程
  採用B/S模型的多層架構結構開發的小區物業管理系統,MVC模式主要對應應用伺服器的部分,前端響應使用者的請求,後端負責與資料庫伺服器之間的資料變換,中間為應用邏輯層,負責具體業務的處理。現依據Struts架構的3個基本組成部分:視圖、模型和控制器,簡要描述系統的設計過程 [4]
  (1)視圖設計
  應用系統的使用者介面通常由JSP頁面組成。在系統的六個模組中,各類資訊的添加、刪除、修改和瀏覽都通過JSP頁面進行表現。系統在處理每個資料表示主要是用兩個JSP頁面進行表示:一個頁面用於資料的添加、刪除、修改,另一個頁面用於資料的瀏覽。
  (2)構建模型
  Struts應用程式框架通常預先為每個應用所需要的輸入表單建立一個ActionForm Bean。如果這些bean定義在ActionMapping設定檔中,Struts控制器Servlet將自動執行這些預先設定的操作。因此,在系統開發中,首先為每個模組建立相應的ActionForm Bean,再根據每個模組的實際功能為每個Bean定義使用者操作狀態和視圖中所需要顯示資料資訊的參數,視圖可以通過操作狀態的不同進行不同的介面表示。
  (3)構建控制器
  在Struts應用程式框架中,中心控制器(ActionServlet)接受所有來自用戶端的請求,並根據系統的設定檔Struts-config.xml制定使用者HTTP請求到其他Action對象的路徑。中心控制器是由Struts架構本身所提供,在系統開發中我們無須對ActionServlet進行再開發,而負責具體業務處理的Action類則是系統開發的重點。
  在視圖、模型、控制器對象設計完成後,需要編輯兩個設定檔:web.xml和struts-config.xml,通過它們配置Struts系統中各個模組之間的互動。
  Struts
架構在系統開發中的應用
  小區物業管理系統是一個複雜的大型Web應用系統,為了能夠清楚地描述Struts在系統開發中的應用,本文將以收費管理模組中使用者成功登入系統並進行資料錄入和查詢這一應用為例進行較詳盡的說明。
  1、
分析應用需求    在該應用中,主要事件包括:
  (1)提供使用者登入介面,提示使用者輸入使用者名稱和密碼,並能夠對使用者在用戶端輸入的資料進行簡單的資料格式驗證。若登入成功,轉入主操作介面,否則給出錯誤提示資訊,重新登入。
  (2)由主操作介面轉入物業管理費錄入介面,使用者在表單中輸入相關資訊(使用者ID、日期),提交表單。若提交表單成功,則轉入確認介面,顯示使用者輸入的資訊。
  (3)由主操作介面轉入查詢介面,使用者輸入相關資訊後,查詢出某段時間內該使用者的物業管理費用。
  (4)使用者退出系統,返回主菜單頁面。
  2、
該應用的具體設計
  2.1 資料庫設計
  針對該應用,需在資料庫中建立兩張表:PORPERTY_TABLE和USER_TABLE,各表結構如下:
表1   USER_TABLE
欄位 類型 說明
UserName char(25) 記錄登入到系統的使用者名稱
Password char(25) 記錄登入使用者的登入密碼
  表2  PORPERTY_TABLE
欄位 類型 說明
OwnerID char(8) 記錄唯一表示每個使用者的ID
Date datetime(8) 記錄繳費日期
RAre float(8) 記錄使用者的房屋面積
Charge float(8) 記錄應該繳納的物業管理費
FeeState char(20) 顯示使用者是否繳費

  2.2
設計模型組件
  在Struts架構中,模型組件負責完成商務邏輯。在該應用中,模型組件包括一個實用類DbConnect和兩Jave Bean:UserBean和PorpertyBean。
  實用類DbConnect負責建立和資料庫的串連,所提供的connectToDb()方法具體來實現和資料的串連並返回這個串連。UserBean代表使用者資訊,包括UserName和Password這兩個屬性。PorpertyBean代表物業費用資訊,包括OwnerID、Data、OwnerName等幾個屬性。這兩個JavaBean提供了相應的get/set方法,此外還負責查詢以及向資料庫中對應的表添加/查詢記錄。
   2.3 使用者介面設計
  使用者介面是Web應用和使用者的視窗,既可以接受使用者的輸入資訊也可以向使用者輸出資訊。表3列出了該應用中用到的使用者介面及其說明。
表3 使用者介面及其說明
介面 說明
Welcome介面(index.jsp) 顯示歡迎光臨資訊,提供到登入介面的連結
登入介面(logon.jsp) 提示輸入使用者名稱和密碼
主操作菜單介面(mainmenu.jsp) 提供系統所有操作菜單
物業收費資料錄入介面(input.jsp) 提示輸入有關物業費用相關資訊
收費確認介面(confirmation.jsp) 根據使用者錄入的資訊返回該使用者物業費用的所有資訊(如:應繳的費用,是否已繳費等)
物業費查詢介面(search.jsp) 提供使用者輸入相關查詢條件
顯示查詢結果介面(display.jsp) 根據使用者查詢條件顯示查詢結果

  為保持該應用中所有介面風格的一致性,在設計上述這些介面的過程中,我們除了使用標準的JSP<include>語句外,還使用了Struts的Titles架構來建立複合式的JSP頁面,使所有介面具有相同的頁頭和頁尾。
  2.4、 設計ActionForm
  ActionForm Bean用於在視圖組件和控制器組件之間傳遞HTML表單資料。通常每個HTML表單對應一個ActionForm Bean,每個ActionForm的validate( )方法用於實現對使用者輸入資料進行格式和語法檢查。在該應用中包含三個ActionForm Bean:LogonForm、InputForm和SearchForm。
  2.5、
設計Action和Action映射
  在Struts架構中,Action實現各個事件的流程式控制制,Action映射決定Action與其他web組件之間的關聯關係。表4列出了該應用中用到的Action、每個Action的入口(調用Action的組件)、傳遞給Action的ActionForm以及每個Action把請求轉寄到的目標組件即出口。
表4 該應用中的Action
Action 入口 ActionForm 出口
LogonAction logon.jsp LogonForm mainmenu.jsp
InputAction input.jsp InputForm confirmation.jsp
SearchAction search.jsp SearchForm display.jsp
LogoffAction mainmenu.jsp index.jsp

  圖3給出了該應用中Action組件與其它組件的映射關係圖。

圖3 Action映射圖

  上述所有Action組件需要在Struts的設定檔struts-config.xml中配置其映射關係。
  
應用Struts架構的優點  
  (1)整個物業管理系統包括上百個檔案,若採用傳統的結構,要弄清楚某個視圖是使用什麼模型來處理邏輯是件很複雜的事。而採用Struts架構來開發的應用系統,依靠JSP和Struts-config.xml以及它們間的統一命名規則卻很容易地進行系統流程的查勘、修改和理解。只要根據視圖Form表單的Action,在設定檔中找到同名的Action定義,就可以得知其路徑以及相應的FormBean。
  (2)Struts中所有邏輯處理都封裝在class內,視圖部分不再介入邏輯的處理,計算和顯示清楚地分開了,在JSP頁面上沒有出現處理過程,在Servlet或商業邏輯中沒有資料格式。並且基於Struts架構開發出的JSP代碼也很簡潔,JSP頁面中不含有Java代碼,只含有Script和使用Struts標籤庫的HTML,頁面開發人員不必為修改視圖而必須先理解模型,很大程度上提高程式開發效率。
  
結束語
  Struts是一個實現良好的MVC架構,在現代軟體開發中,越來越多的應用於大型Web應用系統的開發。基於Struts架構的小區物業管理系統的順利開發,也證實了Struts架構是一種非常優秀的J2EE/MVC實現方式。該物業管理系統將為小區物業管理部門提供一個全新的工作環境,給物業管理的日常工作帶來了極大的方便,提高了工作效率,具有很好的推廣價值和應用前景。

相關文章

Alibaba Cloud 10 Year Anniversary

With You, We are Shaping a Digital World, 2009-2019

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。