王冰 邢國光 肖林
[摘要]項目申報是指政府機關針對企業或其他研究單位作出的一系列優惠政策,企業或相關研究單位再根據政府的政策進行編寫申報文件然后根據相關申報要求和流程進行申報。本文首先對項目申報系統的功能需求進行了分析,然后,對MVC設計模式及Struts框架進行了研究,最后基于Struts框架提出項目申報系統的設計方案,并對方案進行了實現。
[關鍵詞]科研項目;項目申報;審批
隨著我國財政支持資金渠道的增多,企業申報的財政支持項目越來越多。項目申報是一項繁瑣的工作,通過人工申報容易出錯。本文實現基于Web的項目申報系統,旨在為廣大科技工作者提供一個進行項目申報的網絡平臺。為系統管理員提供一種方便的項目申報管理手段,實現申報管理以及申報流程的系統化、規范化和自動化。項目審批者通過系統來實現項目受理、公文傳遞、項目審批、結果反饋等,為用戶提供一站式的服務。用戶進入申報系統后,可提交申請,查詢審批結果等。因此開展基于web的項目申報系統的研究和開發,具有十分重要的意義。
1.MVC設計模式
MVC通過把一個應用的實現劃分為三個層,即模型層、視圖層和控制層,使商業邏輯和用戶界面有效地進行分離。模型層、視圖層和控制層三者的功能及相互協作關系。模型層(Model):負責制定相應的業務規則,根據視圖層發來的請求數據。對業務邏輯進行處理,并返回最終的處理結果。業務模型的設計是MVC的核心內容。視圖層(View):負責實現與用戶的交互,可以是HTML頁面,也可以是JSP頁面等。一個Web應用可能對應很多不同的視圖,視圖可以對數據進行采集和顯示,但不能處理業務邏輯,數據的采集和顯示都要依賴于模型層。控制層(controller):是一個請求分發器,負責接收視圖層的請求,可以將模型層與視圖層綁定在一起,通過選擇相應的模型和視圖完成相應的用戶請求。一個模型可能對應多個視圖,一個視圖可能對應多個模型。如果視圖層通過控制層改變了模型的數據,所有依賴于這些模型的視圖都能及時體現出這些變化。
2.Struts框架
Struts框架對MVC設計模式中的模型層、視圖層和控制層都提供了相應的組件類。其中,模型層由Action Form類和Java Bean組件等組成,Action Form類用于將視圖層提交的請求參數封裝到相應的Action Form對象中,該對象被控制層的Aetion Servlet類轉發給Action類,Action類根據Action Form對象封裝的請求參數來處理用戶的請求,具體的業務邏輯可通過Java Bean組件來實現。視圖層主要包括JSP頁面,在JSP頁面中可通過Struts框架提供的標簽庫實現與模型層交互??刂茖佑上到y核心控制器和業務邏輯控制器組成。系統核心控制器是Actionser let類,該類繼承自http Servlet類,可以按標準的Serv let類進行配置,它負責攔截所有的請求,然后根據用戶請求決定要轉給哪個業務邏輯控制器。業務邏輯控制器,可以是Action類的子類,負責接收來自Acdon Servlet類的請求,并根據該請求調用模型層的業務邏輯方法處理請求,請求處理結束后,將結果提交到Action Servlet類,由Aetion Servlet類將處理結果返回給相應的JSP頁面進行顯示。Struts框架中各組件的協作關系。
3.系統設計與實現
3.1系統設計
通過對項目申報系統進行需求分析,可以為系統設計以下幾種基本功能,即申報、審批、核準、系統管理等。系統的用戶角色可分為管理員、申報者、審批者和核準者等,用戶登錄系統后,根據角色分別進入相應的工作頁面。申報者登錄系統后,能夠查看系統發布的項目信息,能夠輸入并提交相應的項目申報信息,可以隨時查看審批結果。當審批沒有通過時,可以對申請信息進行修改后再次提交。審批者登錄系統后,可以查看分配給自己的審批任務,分別選擇相應的任務進行審批。如果審批通過,則可以提交給相應的領導進行核準,如果審批沒有通過,則填寫意見后返回到申報者要求重新提交申請信息。核準者登錄系統后,可以查看審批者提交給自己的已通過的審批任務,分別選擇相應的任務進行核準。如果核準通過,則該審批任務被設為“成功”狀態,如果核準沒有通過,則填寫意見后轉送到審批者要求重新審批。系統管理員登錄系統后,能發布、修改和刪除相應的項目信息,能夠對系統用戶進行管理,對用戶訪問權限進行設置,通過系統日志對審批流程進行監控,對審批結果數據進行管理。
3.2系統實現
系統基于Struts框架進行設計,JSP頁面作為系統的視圖層,ActionServlet類和Aetion類作為系統的控制層,ActionForm類和JavaBean作為系統的模型層。視圖層組件包括:login,jsp頁面,用來實現用戶登錄。apply,jsp頁面,用來實現申報申請信息的輸入。Showresuh,jsp頁面,用來輸出顯示用戶的審批結果信息。Approve,jsp頁面,用來對審批任務進行審批。Check,jsp頁面,用來對審批任務進行核準。ApplyActionForm類是Struts框架中AetionForm類的子類,用來封裝用戶提交的項目申報申請信息。proapplyBean類是用于處理業務邏輯的JavaBean,其封裝了對數據庫的操作,其業務邏輯的實現是通過調用相應方法來完成的。loginCheck()方法用來實現用戶登錄驗證,saveData()方法用來實現保存用戶提交的項目申報申請信息,queryDataO方法用來查詢指定的審批任務結果信息。approve()方法用來保存審批結果信息,check0方法用來保存核準結果信息??刂茖咏M件包括ActionServlet類和Action類,ActionServlet類來自Struts框架,是整個應用的控制中心,通常不需要擴展。使用Struts框架提供的Action類擴展生成相應的子類(如pmapplyAction,java等),其作用是接收ActionServlet類請求,取得ApplyActionForm對象中封裝的數據,調用proapplyBean組件的業務方法,進行相應的業務處理。
4.結束語
Struts是一種非常優秀的MVC實現框架,本文針對項目申報業務的需求,基于Struts框架進行了項目申報系統的設計與實現,將傳統的三層架構的頁面顯示、業務處理、系統控制三者分開,使系統具有靈活、可擴展、易維護的特點。系統遵循J2EE規范和MVC設計模式,具有跨平臺、低成本、開發高效快捷、可裁剪、可重用等優點,解決了目前項目申報系統推廣普及的一些瓶頸問題,適用于項目申報系統建設項目的需求,具有一定的應用價值。
參考文獻
[1]孫衛琴.基于MVC的Java Web設計與開發[M].電子工業出版社,2010
[2]李躍.基于Web的高校項目評審系統的設計與實現[J].電子設計工程,2012