1 區(qū)域數(shù)據(jù)批量導入功能
1.1 頁面中引入插件并指定用作導入功能的按鈕進行初始化


1.2 在RegionAction中提供myFile參數(shù)接收頁面?zhèn)魅氲膞ls文件并提供importXls方法解析頁面?zhèn)魅氲膞ls文件;


1.3 在RegionServiceImpl中提供saveBatch方法批量保存xls數(shù)據(jù)到數(shù)據(jù)庫中

1.4 在BaseDaoImpl中拓展通用saveOrUpdate方法

最后測試成功將數(shù)據(jù)導入數(shù)據(jù)庫截圖


2 使用pinying4J生成簡碼和城市編碼
2.1 導入pinying4J的jar包以及工具類


2.2 在RegionAction中的importXls方法中添加自動生成簡碼和城市編碼的代碼

測試成功生成簡碼和城市編碼的截圖

3 重構分頁代碼
3.1 將StaffDaoImpl中的分頁方法與分頁參數(shù)抽取到BaseDaoImpl中作為一個通用的分頁方法和參數(shù)使用



3.2 在StaffAction和RegionAction中調用抽取的通用分頁查詢方法完成各自的分頁查詢請求


3.3 在region.jsp中修改表格數(shù)據(jù)請求地址為RegionAction中對應的分頁查詢方法地址

4 添加分區(qū)功能
4.1 在頁面添加分區(qū)的窗口設置選擇分區(qū)所在區(qū)域的下拉框數(shù)據(jù)請求地址

4.2 在RegionAction中添加區(qū)域列表查詢方法并抽取相關代碼是到BaseAction中作為一個通用的列表數(shù)據(jù)查詢方法



5 組合條件分頁查詢分區(qū)功能
5.1 給查詢分區(qū)窗口的查詢按鈕添加事件,用于處理用戶的查詢操作。

5.2 在SubareaAction中開發(fā)pageQuery分頁查詢方法,并對相應的查詢條件進行處理,最后將查詢出的數(shù)據(jù)調用BaseAction中的通用分頁數(shù)據(jù)轉json方法對頁面返回相應的json數(shù)據(jù)。

6 分區(qū)數(shù)據(jù)導出功能
6.1 在頁面給導出按鈕綁定事件跳轉后臺用于處理導出數(shù)據(jù)的方法

6.2 在SubareaAction中開發(fā)exportXls方法用于處理導出數(shù)據(jù)的請求

6.3 測試導出分區(qū)數(shù)據(jù)成功


錯誤日志:
今天早上開發(fā)項目的時候啟動一直失敗,報以下截圖中錯誤。

隨后我在國內的csdn等各大開發(fā)者論壇網(wǎng)站到處搜索,把問題鎖定在jar沖突和缺少jar包這兩個方面。接下來花了一個半小時依舊沒找出問題所在,然后我上國外的Stack Overflow搜索問題并一眼看見了和我問題一樣的提問。進入之后發(fā)現(xiàn)了以下截圖中的第一個答案就解決了我的問題,證明是我之前的方向有誤,這是jdk版本與項目框架版本沖突導致的。

如果項目中的jdk版本變成了1.8,而spring和hibernate等框架依舊是3.xx的低版本就會出現(xiàn)這個問題。而這個項目本身就設計的是jdk版本1.7,并且這幾天我一直都用的1.7開發(fā)沒出現(xiàn)問題。而今天突然變成了1.8所以就導致了這種詭異的現(xiàn)象,具體原因我目前大概推算是因為昨天win10下方工具欄失靈點擊無效,我在任務管理器重啟了資源瀏覽器。這導致了myeclipse的進程強制結束而不是正常退出,所以也就使工作空間本來設置的jdk版本為1.7被重置成了默認的1.8。
在開發(fā)添加分區(qū)功能的時候控制臺出現(xiàn)下面截圖中的錯誤,并且數(shù)據(jù)添加失敗。

后面確認實體屬性名與表單參數(shù)名完全對應之后在瀏覽器中使用開發(fā)工具抓取添加分區(qū)時發(fā)出的網(wǎng)絡請求發(fā)現(xiàn)導致這個問題出現(xiàn)的原因是請求地址錯誤,修改為正確的表單提交地址之后成功解決該問題。
在開發(fā)分頁查詢分區(qū)中控制臺報出以下截圖中的錯誤,并且查詢數(shù)據(jù)失敗。


之后采取debug的方式明確了錯誤發(fā)生在BaseAction中通用的分頁數(shù)據(jù)轉json方法中將對象序列化json的時候,又根據(jù)錯誤信息結尾的空指針異常信息排查到在pageBean對象中的分頁數(shù)據(jù)subArea對象中的一個屬性是region對象,而應為hibernate框架默認懶加載返回的region的代理對象,所以region對象內的所有屬性值均為空導致序列化json失敗。然后在Subarea對象的xml映射文件中在region的標簽中加上lazy=false屬性后成功解決該問題。
