Easyjweb-0.7在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