(注:我目前正在基于struts2做一個輕量級的快速開發框架,并且不打算使用所以此文中所述的用命令加參數調用后臺邏輯的方式,命令的方式可能更有利于分層和解耦,但對快速開發并不有利。所以本文僅供參考。)
Jacker模塊開發主要可分為操作界面和提交數據兩部分。
在Jacker中,操作界面仍然沿用Web中傳統的URL得到html的方式獲取,這樣的做法與純Ajax構建界面不同,但也有其方便性。
1. 通過簡短的URL鏈接,獲取豐富的頁面(操作界面),是http協議所擅長的;
2. 界面操作權限也可以在服務器端產生頁面時進行控制,比如某些鏈接由于沒權限不能顯示,某些按鈕要disable掉;
3. 由于頁面在服務器端產生,在后臺能充分利用hibernate延遲加載,只加載頁面展示需要的數據;
4. 你仍然可以使用傳統的頁面開發工具開發所見即所得的html頁面模板,比如DreamWeaver;
5. 對于使用MVC框架的開發者,URL獲取操作界面正是他們所熟悉的,沒有學習臺階;
正是基于很多原因,URL,html這些原始的Web元素在Jacker中得到了保留,同時作為對Html的擴展,頁面引入了很多有用的Ajax組件,豐富了數據展示和交互能力,比如:Grid,Tree等;
接著說提交數據,在Jacker中,提交數據與傳統的http post完全不同,采用了ajax方式,提交數據并保持當前頁面??蛻舳私M織好需要提交的js數據對象后,可使用命令+參數的方式提交給服務器端運行并得到結果js對象。服務器端Java對象和客戶端js數據對象的互轉由框架實現,所以客戶端的調用清晰便捷,實現跨語言調用。
附圖:
上圖演示了Jacker框架的一次完整的交互:產生一個id為xxx的customer資料維護界面,修改customer數據提交保存。在Jacker框架下,任意復雜的模塊都是獲取界面+提交數據這兩種基本模式的組合。