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