1 區域數據批量導入功能
1.1 頁面中引入插件并指定用作導入功能的按鈕進行初始化
1.2 在RegionAction中提供myFile參數接收頁面傳入的xls文件并提供importXls方法解析頁面傳入的xls文件;
1.3 在RegionServiceImpl中提供saveBatch方法批量保存xls數據到數據庫中
1.4 在BaseDaoImpl中拓展通用saveOrUpdate方法
最后測試成功將數據導入數據庫截圖
2 使用pinying4J生成簡碼和城市編碼
2.1 導入pinying4J的jar包以及工具類
2.2 在RegionAction中的importXls方法中添加自動生成簡碼和城市編碼的代碼
測試成功生成簡碼和城市編碼的截圖
3 重構分頁代碼
3.1 將StaffDaoImpl中的分頁方法與分頁參數抽取到BaseDaoImpl中作為一個通用的分頁方法和參數使用
3.2 在StaffAction和RegionAction中調用抽取的通用分頁查詢方法完成各自的分頁查詢請求
3.3 在region.jsp中修改表格數據請求地址為RegionAction中對應的分頁查詢方法地址
4 添加分區功能
4.1 在頁面添加分區的窗口設置選擇分區所在區域的下拉框數據請求地址
4.2 在RegionAction中添加區域列表查詢方法并抽取相關代碼是到BaseAction中作為一個通用的列表數據查詢方法
5 組合條件分頁查詢分區功能
5.1 給查詢分區窗口的查詢按鈕添加事件,用于處理用戶的查詢操作。
5.2 在SubareaAction中開發pageQuery分頁查詢方法,并對相應的查詢條件進行處理,最后將查詢出的數據調用BaseAction中的通用分頁數據轉json方法對頁面返回相應的json數據。
6 分區數據導出功能
6.1 在頁面給導出按鈕綁定事件跳轉后臺用于處理導出數據的方法
6.2 在SubareaAction中開發exportXls方法用于處理導出數據的請求
6.3 測試導出分區數據成功
錯誤日志:
今天早上開發項目的時候啟動一直失敗,報以下截圖中錯誤。
隨后我在國內的csdn等各大開發者論壇網站到處搜索,把問題鎖定在jar沖突和缺少jar包這兩個方面。接下來花了一個半小時依舊沒找出問題所在,然后我上國外的Stack Overflow搜索問題并一眼看見了和我問題一樣的提問。進入之后發現了以下截圖中的第一個答案就解決了我的問題,證明是我之前的方向有誤,這是jdk版本與項目框架版本沖突導致的。
如果項目中的jdk版本變成了1.8,而spring和hibernate等框架依舊是3.xx的低版本就會出現這個問題。而這個項目本身就設計的是jdk版本1.7,并且這幾天我一直都用的1.7開發沒出現問題。而今天突然變成了1.8所以就導致了這種詭異的現象,具體原因我目前大概推算是因為昨天win10下方工具欄失靈點擊無效,我在任務管理器重啟了資源瀏覽器。這導致了myeclipse的進程強制結束而不是正常退出,所以也就使工作空間本來設置的jdk版本為1.7被重置成了默認的1.8。
在開發添加分區功能的時候控制臺出現下面截圖中的錯誤,并且數據添加失敗。
后面確認實體屬性名與表單參數名完全對應之后在瀏覽器中使用開發工具抓取添加分區時發出的網絡請求發現導致這個問題出現的原因是請求地址錯誤,修改為正確的表單提交地址之后成功解決該問題。
在開發分頁查詢分區中控制臺報出以下截圖中的錯誤,并且查詢數據失敗。
之后采取debug的方式明確了錯誤發生在BaseAction中通用的分頁數據轉json方法中將對象序列化json的時候,又根據錯誤信息結尾的空指針異常信息排查到在pageBean對象中的分頁數據subArea對象中的一個屬性是region對象,而應為hibernate框架默認懶加載返回的region的代理對象,所以region對象內的所有屬性值均為空導致序列化json失敗。然后在Subarea對象的xml映射文件中在region的標簽中加上lazy=false屬性后成功解決該問題。