在开发中,有时候多个 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" 的值 方法