Sruts2学习笔记(三)

来源:互联网 发布:js 移除class 编辑:程序博客网 时间:2024/06/05 08:17

ActionInvocation

       The Guy in charge。这是介绍ActionInvocation的标题说的一样。是整个链的核心。我觉得ActionInvocation其实是扮演一条链的开始点,和管理着的角色。起决定了,或者调用了各个intercepter的调用。
       整个流程其实很简单,ActionInvocation调用了各个intercepter的intercept方法,这个方法,会把一个ActionInvocation做为参数传入intercepter,然后intercepter调用传入的ActionInvocation的invoke方法,把控制权传回给ActionInvocation方法。当一切结束时,会调用相应的action。也就这样,保证了各个intercepter的独立性。你可以任意的调配intercepter。而不用考虑他们之间是否匹配。

Intercepter
      这是整个Sturts当中的核心。这一章的开头讲了它的很多作用。比如说简化代码,控制流程……很多的事情。
      在看完这么多,做了一个练习之后,觉得从程序上来说,其起到类似于aop的作用。而观念上觉得,则是控制了一种流的概念。其实一个web的请求当中有很多事情。很多事情都是重复的,比方说数据的类型转换之类的。以往的过程中,我们把这些加入到了本身的业务代码中。耳边的凌乱,难以分析和修改。而intercepter正好解决了这个问题。如果说把每个工作分解成一个一个小的工作,然后再把这些工作封装成一个个intercepter。那么也就能够实现了重用,和便于修改了。

常用的Intercepter
    TIMER:测量一个action运行时间的
     LOGGER:日志

     PARAMS (DEFAULTSTACK):负责把page上Stringl类型的数据转换成相应的java数据类型。
     STATIC-PARAMS (DEFAULTSTACK):常量使用方法
    AUTOWIRING:自动装配
    SERVLET-CONFIG ( DEFAULTSTACK ):The servlet-config interceptor provides a clean way of injecting various objects from the Servlet API into your actions.觉得中文翻不好,就直接写英文了。我对其的理解是传一些web信息。觉得这有点偏颇。怎么说呢,原来的一些web信息通过这些来获得(让Action实现其相应的接口)。
     FILEUPLOAD ( DEFAULTSTACK ):上传文件。

     WORKFLOW (DEFAULTSTACK):提供验证。可以通过提供不同的参数来进行配置
     VALIDATION (DEFAULTSTACK):和上面一样。不过主要还是提供一个借口,类似于SERVLET-CONFIG,
     PREPARE (DEFAULTSTACK):The prepare interceptor provides a generic entry point for arbitrary workflow processing that you might want to add to your actions.继承,然后实现prepare接口。
    MODELDRIVEN (DEFAULTSTACK):自动装配

    EXCEPTION (DEFAULTSTACK):处理异常
   TOKEN AND TOKEN-SESSION,防止重复请求 
    SCOPED-MODELDRIVEN (DEFAULTSTACK):MODELDRIVEN升级版
   EXECANDWAIT:在常运行的app中,给用户以一定的回馈。

配置Intercepter

原创粉丝点击