十一天SSH項目快速實戰(zhàn)課程(第3天)

1 項目介紹

1.1 項目背景

國稅協(xié)同辦公平臺包括了行政管理、后勤服務、在線學習、納稅服務、我的空間等幾個子系統(tǒng);我們本次主要的開發(fā)功能是納稅服務子系統(tǒng)的部分模塊和基于納稅服務子系統(tǒng)信息的個人工作臺首頁。納稅服務子系統(tǒng)是辦稅PC前端或移動端的后臺管理系統(tǒng),主要包括的功能有系統(tǒng)角色管理、用戶管理、信息發(fā)布管理、投訴受理、納稅咨詢、易告知、服務預約、服務調查等模塊。

十一天SSH項目快速實戰(zhàn)課程(第3天)

十一天SSH項目快速實戰(zhàn)課程(第3天)

————————————————————————————

此處上接實戰(zhàn)第二天課程內(nèi)容

4 抽取BaseAction

在action中繼承了ActionSupport和其它一些公共屬性,如selectedRow等;可能以后還會產(chǎn)生更多公共的內(nèi)容,所以應該把這些共有的抽取出來,放入到一個基本action中,我們命名為BaseAction,讓它去繼承ActionSupport和其它公共屬性,其它的action只要繼承它就可以了。

5 系統(tǒng)異常處理

當在頁面中發(fā)送了請求,請求被系統(tǒng)處理時出現(xiàn)錯誤時,如果沒有特別處理在請求過程中出現(xiàn)的異常信息時,那么返回給用戶的則是后臺的異常信息頁面;為避免直接將這報錯的頁面呈現(xiàn)給用戶,可對這報錯進行處理。

5.1 分層異常

在本系統(tǒng)中的后臺處理有分3個層,分別是action、service和dao層,每個層次都有可能出現(xiàn)相應錯誤。① Action層可能出現(xiàn)解析請求參數(shù)、返回結果有問題;② Service 層則可能出現(xiàn)請求中要做的業(yè)務操作出現(xiàn)問題;出現(xiàn)了問題要根據(jù)實際情況判斷是否會影響本次操作結果,action中要根據(jù)異常信息進行判斷然后確定是否操作成功;③ dao層也可能出現(xiàn)在操作數(shù)據(jù)庫時出現(xiàn)錯誤;而此種錯誤一般都是致命的會影響操作結果。以此;在3個層次中至少要有兩種類型的異常信息來標識。

制定總的系統(tǒng)異常類:

十一天SSH項目快速實戰(zhàn)課程(第3天)

Action層異常類:

十一天SSH項目快速實戰(zhàn)課程(第3天)

Service層異常類:

十一天SSH項目快速實戰(zhàn)課程(第3天)

5.2 異常處理

5.2.1 全局異常映射

在struts總配置文件(struts.xml)中配置一個包括 全局異常映射和全局結果的package,然后讓其它所有的業(yè)務模塊的struts配置文件(*-struts.xml)繼承后便可處理由后臺拋出的特定異常并處理。

在總配置文件struts.xml中:

十一天SSH項目快速實戰(zhàn)課程(第3天)

在子業(yè)務模塊中的*-sturts.xml中繼承總配置文件中的package:

十一天SSH項目快速實戰(zhàn)課程(第3天)

在具體的后臺處理代碼中拋出系統(tǒng)異常:

十一天SSH項目快速實戰(zhàn)課程(第3天)

如果在action中只拋出了ActionException,那么非此異常出現(xiàn)時,如果在全局異常映射中配置了java.lang.Exception 異常類的映射,同樣可以捕獲。

5.2.2 制定返回類型(StrutsResultSupport)

在有特殊情況時;如果沒有異常信息,但是有錯誤并且有錯誤信息等內(nèi)容;此時也需要進行友好的錯誤處理的話,那么可以借助StrutsResultSupport 返回結果類型來實現(xiàn)特定處理。此種方式先需要繼承StrutsResultSupport ,然后可以在子類中獲取本次請求的相關信息,再根據(jù)相關信息進行結果處理:

十一天SSH項目快速實戰(zhàn)課程(第3天)

在struts.xml總配置文件中定義全局處理類型和全局處理結果:

十一天SSH項目快速實戰(zhàn)課程(第3天)

6 角色管理

6.1 角色與權限說明

6.1.1 角色與權限的關系

系統(tǒng)中可以存在多個角色,每個角色可以自由的組合系統(tǒng)定義的權限集合。即角色和權限的關系是多對多的關系。為了保存這種多對多關系,需要一個角色權限表來保存。角色與角色權限的關系是一對多的關系;而權限與角色權限的關系也為一對多關系。

6.1.2 定義系統(tǒng)權限集

將系統(tǒng)中需要使用到的權限先定義出來:粗粒度的分為各個子系統(tǒng)的訪問權限;這些權限可以定義在常量文件中。

十一天SSH項目快速實戰(zhàn)課程(第3天)

6.2 角色管理CRUD

6.2.1 實體類及映射文件

1 Role/Role.hbml.xml

十一天SSH項目快速實戰(zhàn)課程(第3天)

2 RolePrivilege/RolePrivilegeId,RolePrivilege.hbm.xml

十一天SSH項目快速實戰(zhàn)課程(第3天)

十一天SSH項目快速實戰(zhàn)課程(第3天)

6.2.2 dao、service層主要操作方法

dao中主要方法:

十一天SSH項目快速實戰(zhàn)課程(第3天)

service中主要方法:

十一天SSH項目快速實戰(zhàn)課程(第3天)

6.2.3 action中主要方法

十一天SSH項目快速實戰(zhàn)課程(第3天)

十一天SSH項目快速實戰(zhàn)課程(第3天)

6.2.4 配置文件

配置role-spring.xml及role-struts.xml,并將role-struts.xml加入到struts.xml總配置文件中。

相關新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部