隋雪莉 許 鳴
(南京航空航天大學(xué)金城學(xué)院 信息工程系,江蘇 南京 211156)
隨著學(xué)校規(guī)模的擴大,教務(wù)處發(fā)布的新聞也越來越多,按照傳統(tǒng)分發(fā)紙質(zhì)文件的模式,耗費的人力、物力和財力也越來越多。目前已有的新聞管理系統(tǒng)無法滿足我院的個性化需求,針對這一問題,筆者對我院教務(wù)新聞管理的需求進行了進一步的調(diào)研與分析,設(shè)計并實現(xiàn)了基于Struts2框架的高校教務(wù)新聞管理系統(tǒng)。該系統(tǒng)使用JAVA語言開發(fā);以Mysql作為數(shù)據(jù)庫開發(fā)平臺;以Tomcat作為Web服務(wù)器。
MVC是一種架構(gòu)型模式,用來指導(dǎo)開發(fā)者改善應(yīng)用程序的架構(gòu),從而得到更好的開發(fā)和維護效率。在MVC模式中,應(yīng)用程序被劃分為模型(Model)、視圖(View)和控制器(Controller)三部分。 模型部分包含了應(yīng)用程序的業(yè)務(wù)邏輯和業(yè)務(wù)數(shù)據(jù),負(fù)責(zé)封裝應(yīng)用的狀態(tài),并實現(xiàn)應(yīng)用的功能;視圖部分封裝了應(yīng)用程序的輸出形式,將模型的內(nèi)容展現(xiàn)給用戶,用戶可以通過視圖來請求模型進行更新;控制器部分負(fù)責(zé)協(xié)調(diào)模型和視圖,根據(jù)用戶請求選擇調(diào)用哪個模型處理業(yè)務(wù),以及最終由哪個視圖為用戶做出應(yīng)答[1]。
Struts2是一種基于MVC的輕量級Web應(yīng)用框架[1]。Struts 2框架本身可分為3個部分:核心控制器FilterDispatcher、業(yè)務(wù)邏輯控制器Action和結(jié)果展示。核心控制器FilterDispatcher包含了框架內(nèi)部的控制流程和處理機制,只需在項目web.xml中配置;業(yè)務(wù)邏輯控制器Action由用戶自己實現(xiàn);Struts2的結(jié)果展示方式有常規(guī)的JSP,還有模板Freemaker等。用戶在開發(fā)的同時,還需編寫相關(guān)配置文件,供核心控制器FilterDispatcher來使用。
高校教務(wù)新聞管理系統(tǒng)是教務(wù)處管理教務(wù)信息的平臺。本平臺有兩類管理員,分別是一級管理員和科室管理員。系統(tǒng)功能模塊如圖1所示。
圖1 系統(tǒng)功能模塊圖
圖2 數(shù)據(jù)庫表關(guān)系圖
(1)登錄及修改個人信息
各管理員通過登錄模塊登入本系統(tǒng),進行相關(guān)管理操作。登入系統(tǒng)后可以更改個人信息,包括重新設(shè)置密碼、更改用戶名等。
(2)科室管理
一級管理員可以查看所有科室信息;根據(jù)學(xué)院的情況,在系統(tǒng)中調(diào)整教務(wù)處各科室,包括添加新的科室、刪除已有科室、修改科室名稱。每個科室對應(yīng)若干位科室管理員,科室管理員管理本科室發(fā)布的新聞。當(dāng)科室管理員發(fā)生變動時,一級管理員需要在系統(tǒng)中調(diào)整科室管理員的信息。
(3)新聞版塊管理
一級管理員對新聞版塊的管理包括新聞主版塊和新聞子版塊的管理。對新聞主版塊的管理包括查看、刪除、修改新聞主版塊。對新聞子版塊的管理包括在新聞主版塊下增加、刪除一個子版塊;修改子版塊名稱。
(4)文章管理
各科室管理員可以發(fā)布新聞。發(fā)布時,需要填寫新聞標(biāo)題、內(nèi)容、選擇主版塊和下設(shè)子版塊等。新聞中如有圖片,需要上傳圖片,上傳后圖片顯示在文章正文的底部。各科室管理員可以對自己已發(fā)的新聞進行修改。
一級管理員對文章進行管理時,首先篩選文章,然后可以批量刪除或者遷移。批量遷移是指將部分文章移至其他新聞版塊。
(5)查看新聞
登錄系統(tǒng)后即可查看所有已發(fā)布的新聞。
本系統(tǒng)設(shè)計了 5 張表:t_article、t_dept、t_user_admin、t_model 和 t_submodel。 其中t_article中存放新聞的信息,包括編號、新聞標(biāo)題、所屬版塊、創(chuàng)建時間、所屬科室、新聞內(nèi)容、新聞圖片地址等。t_dept中存放了科室編號和科室名稱等。t_user_admin中存放了管理員的編號、用戶名、密碼、所屬科室等。t_model中存放了新聞主版塊的編號、url規(guī)則、名稱等。t_submodel中存放了新聞子版塊的編號、名稱、所示主版塊編號等。
數(shù)據(jù)庫表的關(guān)系圖如圖2所示。
本文所設(shè)計的高校教務(wù)新聞管理系統(tǒng)采用了MVC設(shè)計模式,并基于Struts2框架。使用JSP作為結(jié)果顯示頁面,只關(guān)注需要顯示的數(shù)據(jù)的樣式及效果,不需關(guān)注業(yè)務(wù)邏輯[2];控制器部分完成Action和struts.xml配置文件的定義,接收客戶瀏覽器JSP頁面的請求并判斷,然后通過配置文件關(guān)聯(lián);模型部分完成業(yè)務(wù)邏輯代碼,與數(shù)據(jù)庫進行交互,實現(xiàn)業(yè)務(wù)功能。
(1)結(jié)果顯示
Struts2提供了功能強大的標(biāo)簽庫,這些標(biāo)簽不依賴于任何表現(xiàn)層技術(shù),同時支持用戶自定義標(biāo)簽以滿足頁面復(fù)雜多變的需求[3]。使用Struts2標(biāo)簽需添加導(dǎo)入標(biāo)簽庫語句:<%@taglib uri=“/struts– tags”prefix=“ s”% >
(2)控制器
利用Struts2技術(shù),可將提交的服務(wù)請求轉(zhuǎn)交給不同的Action處理,待進行業(yè)務(wù)處理的類和Action的映射關(guān)系在struts.xml配置文件中設(shè)置。以下為配置文件中的部分代碼。
接收用戶請求后,struts.xml配置文件將請求分發(fā)給名為search的Action,進行處理。
(3)業(yè)務(wù)邏輯處理部分
業(yè)務(wù)邏輯處理選取POJO來封裝業(yè)務(wù)邏輯對象,利用泛型DAO模式結(jié)合JDBC來實現(xiàn)持久化邏輯。
本文設(shè)計了一個基于Struts2框架的高校教務(wù)新聞管理系統(tǒng)。該系統(tǒng)結(jié)合本學(xué)院情況,設(shè)計的功能包括教務(wù)處科室管理、新聞版塊管理以及文章管理等。實現(xiàn)時采用了Struts2框架,簡化了開發(fā)過程,具有優(yōu)秀的解耦性。不同層之間耦合度小,有利于團隊成員并行工作,大大提高了開發(fā)效率。
[1]陳臣,王斌,孫琳,王鴿,浦蓬勃.研磨 Struts2[M].北京:清華大學(xué)出版社,2011.
[2]吳向南,陳偉宏,陳橋,張龍.基于 Struts2 的在線學(xué)習(xí)系統(tǒng)方案設(shè)計[J].科技信息,2014(7):36-37,45.
[3]陸舟.struts2技術(shù)內(nèi)幕:深入解析Struts架構(gòu)設(shè)計與實現(xiàn)原理[M].北京:機械工業(yè)出版社,2012.