在開發中,有時候多個 Action 中都須要進行一樣的一段邏輯判斷、處理,能夠把它們抽取出來,放到攔截器中來實現。這樣既能夠實現代碼複用,減小代碼量,又便於維護。(不至於新增一個 Action 就添加這樣一段代碼,後期須要改這段代碼的時候,也不用每一個 Action 中都做相應修改)這時候就須要在攔截器中取所調用的 Action 的參數,包括傳進來的和傳出去的,下面列舉一些我用到的方法: spa
1.進行權限判斷(判斷有無登錄) 開發
2.獲得 Action 方法返回的結果 get
String result = ai.invoke(); // 此方法調用了 Result ,故在攔截器中做更改,對最終結果無影響
String result = ai.invokeActionOnly(); // 此方法只調用 Action, 在攔截器中做更改,對最終結果有影響。 io
3. actionInvocation.getInvocationContext().getName();// 當前調用的 Action 的名字(struts配置 文件中寫的名字) 配置
actionInvocation.getAction().toString(); // 當前調用的 Action 的名字(全路徑類名) 權限
actionInvocation.getStack().findString("msg");// 從值棧中取出 "msg" 的值 方法