Easyjweb-0.7.0 在 easyjweb-0.6 的版本上做了一些改進:
主要的功能改變有:
1,? 去掉了 0.6 版本比較難于使用的 intercpetor ,增加了在執行 Action 前后的 intercptor ;
2,? 增加了主題功能的支持;
3,? 增加了基于 interceptor 的權限或者安全控制接口;
4,? 增加了 ErrorHandler 來統一管理框架中的錯誤的處理邏輯;
5,? 增加了ForbitRep機制來禁止用戶重復提交表單;
6,? 改進了 hello 應用;
?
使用方法:
1,? interceptor 是需要實現 ActionIntercptor 接口,該接口提供了在執行 action 之前和之后的攔截操作;并且提供了三個該接口的最簡單的實現,你可以選擇繼承來實現之前,之后,或者兩者的攔截器;在 hello 應用中,我們實現了一個 TimeInterceptor ,用來控制在一定時間范圍內的訪問請求;
2,? theme 的功能,你可以根據自己的需要實現 IThemeManager 接口和 ITheme 接口。 IthemeManager 接口是需要根據某種策略從 request 中返回一個 ITheme 對象。 ITheme 對象中定義了返回到視圖中的樣式的 Map 。我們提供了一個通過 properties 文件來簡單的實現主題的切換的類,你只需要把自己不同的樣式以 properties 文件保存為 theme_themeName.properties 文件,并在請求中使用 theme=themeName 就可以獲得該主題的樣式,并且在沒有改參數請求的時候,保持上一個請求的樣式。在 hello 應用中我們也實現了一個這個功能的簡單演示。
3,? 權限控制是基于 interceptor 的,你只需要實現 Icondition 接口來實現自己對一個請求的判斷,如果不通過拋出一個 SecurityException 即可,通過返回 true 。同樣我們實現了一個基于 properties 文件的類,你需要把一個 url 樣式和一個 Icondition 對象聯系起來,保存到 web-inf /url2ConditionMap.properties 文件。在 hello 實例中,我們實現了一個簡單的權限控制攔截。
4,? ErrorHandler 統一管理的應用中的錯誤;你只需要在合時的地方拋出你的錯誤,并使用一個與之對應的實現了 IerrorHandler 接口的類來處理該錯誤即可。在 IerrorHandler 中,允許返回一個 Page 對象,來合成錯誤的視圖。我們同樣也實現了一個基于 properties 文件的 ErrorHandlerManager 類,你可以在 web-inf/ErrorHandlerMap.properties 文件中定義錯誤的類型和他對應的錯誤處理類。在 hello 實例中,我們也給出了一個簡單的錯誤處理的應用。
5,ForbitRep機制使用ForbitRepProcessor方法根據用戶的會話ID和系統時間智能生成一個十六進制的ID,用戶只要在自己的表單里添加一個input type=hide,value=forbit的字段就可以解決重復提交的問題。
6,? 現在的 hello 應用,包括了最新的 4 個功能的簡單的例子。這 4 個新的功能,我們都作了默認的設置,你只需要簡單的添加最少的配置文件和實現類來使用這些比較適用的功能。
?
對于新功能的更多的使用方法,參見相關的文章。也希望你在使用框架時,能發現并及時反饋錯誤信息,你對新的版本的功能的意見;或者提交你的改進代碼,使框架能更完善及易用。
?下載Easyjf-jweb0.7.0