1、學習案例:關于攔截器的了解,我們肯定不再單純地編碼。我會帶大家通過研讀源碼了解攔截器的實現方式,和學習struts2的編碼方式。
2、案例分析:
a)MethodFilterInterceptor方法攔截器,如果沒指定includeMethods,也沒指定excludeMethods,則所有方法都會被攔截,即所有方法默許includeMethods。
b)對指定了includeMethods,而不在其中的方法則不會被攔截。
d)怎樣攔截,攔截甚么都是由MethodFilterInterceptorUtil.applyMethod(..., ..., ...)指定的。有興趣的朋友可以分析下其實現邏輯。
c)ActionInvocation中有個addPreResultListener(PreResultListener listener)方法,其含義就是:在action履行以后,在結果渲染之前,在這兩個時間點之間會接收通知,通知傳入參數對象履行處理。此處使用了視察者模式,如果對視察者模式了解,那末源碼就很容易看懂了,大家可以自行查閱,在此就不多講了。
1、創建監聽類使之實現PreResultListener接口,實現beforeResult(..., ...)方法,此處就是填寫結果被渲染之前的處理邏輯。
2、在攔截器中通過invocation.addPreResultListener(new 監聽類)添加此功能。
3、1般也沒甚么用,反正我是沒用過。有興趣的朋友自行了解。
3、經驗之談:
a)對知識點的掌握不是背下了就OK了,背下的東西過1段時間肯定會模糊,以致忘記。我們必須要理解,如果實在看不懂那也別背,敲代碼論證,或百度案例調試,只有這樣的進步才會促使我們技術的成長。
4、參考項目:由于我們主要是對源碼分析,而項目只是讓大家對流程了解和掌握。這1章,我們就不提供項目演示了,其實也沒甚么可演示的,大家多看看源碼,分析下MethodFilterInterceptorUtil和ActionInvocation兩個接口便可。
5、逐日1樂:
火車站,我牢牢捉住她正要從我的口袋中抽離的手說:“別走。”
她的眼眶1點1點的濕潤,顫抖著說:“能不能放手,
能不能給我留下1點美好的回想,畢竟這是我第1次當小偷。”
終究解釋權歸愛尚合伙人(www.23hhr.com)所有,轉載請注明出處。
上一篇 ubuntu14.04 64位 安裝eclipse出錯
下一篇 XML