public class simpleInterceptor extends AbstractInterceptor{
       pulic String intercep(ActionInvcation args) throws Exception{
         Reg reg=(Reg)args.getAction();
         System.out,println("拦截开始:"+new Date());
         String result=args.invoke();
         System.out,println("拦截结束:"+new Date());
         return result;
  }
}我初学 看书了还是有几个概念有模糊:
  1:Reg reg=(Reg)args.getAction(); 这个话获得一个Action的应用有什么用呢?
  2:String result=args.invoke();对invoke();还是有些模糊 而其这个返回的result是做什么的呢? 
      为什么下面有返回了return result 这个两个是一样的吗

解决方案 »

  1.   

    你这是在模拟struts2中的拦截器吧Reg reg=(Reg)args.getAction(); 得到是哪个action调用了该方法 得到action的对象
    不过这行代码可以不要写啊,写在这也没有String result=args.invoke();
    invoke()是反射机制里面经常会用到的一个方法,主要是可以用来执行args中的方法
     
    而至于result 有什么用?你一个action调用该方法 并且执行了,肯定要返回一个结果撒
    最好的办法是,你可以吧那个args和 result 都打印出来,看一下里面到底存的是一个什么值
    这样的话你就知道是干什么用的了
      

  2.   

    首先要明白ActionInvcation:是一个接口,描叙了一个Action的执行状态。1>.getAction():取得被拦截的Action。作用:可以对Action进行操作。比如:设置属性值,设置错误信息等等。2>.invoke():调用下一个拦截器或Action。也就是调用自定义拦截器之后的拦截器或Action。在拦截器中可以直接return args.invoke();
      

  3.   

    其实可以把拦截器也当做action 只是是一个在其他的action执行之前或者之后 插一下队而已。这样说不知道你能不能明白