extjs踩坑記錄

項目結構

  • 前端
    ExtJS 4.2.1
  • 后臺
    Spring MVC 3.2.8 + Hibernate 4.1.7
  • 數據庫
    SQL Server

模塊

  • View層由ExtJS自己的MVC構成
    -- Model用來承載后端傳輸來的數據
    -- Store相當于代理,實際工作由后端的Controller完成
    -- View就是實際的視圖(本項目中只有兩個頁面:登陸頁面,主頁面.類似于后臺管理界面)
  • Model層和Controller層由Spring MVC 構成
    -- Controller 用來處理請求,這里只用來傳輸數據,不做視圖轉發


    環境項目結構

以我現在的了解,這個項目采用的是一個特殊的"MVC"結構,Spring MVC是核心組件,交互過程如下圖

交互過程

交互過程

  1. 前臺點擊觸發事件,通過store發送請求
  2. 根據請求地址,Spring MVC Controller開始處理請求,在這里進行查詢參數設置(最終將這些參數附加到一個model上,通過它進行查詢)、model對象的修改、添加、刪除以及邏輯關系處理
  3. Controller使用Service層進行真正的數據操作,而Service又是對DAO層的一個封裝,隨意最終數據操作都是在DAO層完成。
  4. DAO層中進行sql語句查詢,使用上面傳來的model對象,抽取其中的參數設置查詢參數并將查詢到的結果封裝成model組返回。(Hibernate在這里起作用)

需求

還是挺復雜的,我參加時已經要開始三期了,表都有近百張,整個項目的結構已經確定了,這次給我分配給我一個任務,業務邏輯是這樣:

用戶點擊退貨菜單,顯示退貨界面,新增行,點擊材料編號,彈出材料查詢界面,用戶選定一條記錄后,關閉彈出頁面,自動填寫其他字段。用戶輸入退貨數量后,點擊保存,完成退貨操作。
用戶點擊退貨報表,顯示退貨報表界面,可通過組合查詢篩選結果。

這里最復雜的地方是材料查詢頁面,因為是退貨,只有入庫之后的材料才需要顯示,而有些材料根本就沒有入過庫。所以需要設置查詢,根據兩個表的關系,做的查詢語句的大概內容是:

select cl.no,cl.name........
from cailiao as cl
right join
(select rk.cailiaono as cailiaono,sum(rk.volume)
from ruku
group by rk.cailiaono) as rkcl
on cl.no=rkcl.cailiaono
where 1=1 and...查詢參數
表關系.jpg

根據這個關系,在DAO、Service、Controller中添加相應的方法,這雖然邏輯復雜一點,但是確定之后就很好弄了,坑爹的在ExtJS上

血淚史

  • 前兩天
    開發用的myeclipse,tmd對js的支持基本為0,就因為錯別字折騰兩天(嘗試用過外部編輯器,尷尬的是在外部編輯后必須在myeclipse中打開才會更新)
  • 中間幾天
    被復雜的頁面結構搞暈,已經有點慌,開始亂寫了,莫名其妙能跑了,結果一起檢查發現邏輯搞錯了,改吧!
  • 又是幾天
    這下徹底慌了,亂上加亂,寫到自己也不知道在寫什么
  • 最后兩天
    意識到錯誤,詢問延期兩天影響如何,承認錯誤。重寫,兩天后完成。

ExtJS 的坑

  1. 報錯提示
    別人家的報錯是這樣的


    JQuery報錯

ExtJS的報錯是這樣的,錯誤原因就是缺了個標點,這去哪找去(絕望),這報錯信息一點用都沒有

ExtJS報錯
  1. 莫名其表的錯誤
    因為是根據之前的頁面寫的新頁面,再三檢查之后,根本沒問題,這里就是會報錯(不影響邏輯和執行)


    image.png
  2. 竟然沒了。。看來最大的坑就是報錯機制了,從中找不到任何有用的信息

這個項目的總體架構挺好,以我的認知,要是有單元測試就好了,現在的冗余代碼特別多,但是不敢改,稍微一改就會有問題。


了解還太少,如有錯誤請指正

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,973評論 19 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,970評論 6 342
  • (一)Struts、Spring、Hibernate、Mybatis框技術 1.Struts2.0有幾種標簽庫 【...
    獨云閱讀 3,280評論 0 62
  • 詠泰山 泰山巍巍,云霧皚皚。所處之巔,群峰匍伏。徒手攀之,山高路險。徒步下之,亦踉亦...
    W心怡閱讀 559評論 0 3
  • 一 五月初,我陪母親去南昌看望妹妹和剛出世的侄女。母親暈車很嚴重,一生沒有...
    冬冬的茶閱讀 400評論 0 0