zoukankan      html  css  js  c++  java
  • struts2框架之拦截器(参考第二天学习笔记)

    拦截器

    1. 什么是拦截器
    1). 与JavaWeb中的Filter比较相似。
    2). 拦截器只能拦截Action!!!

    2. Struts中定义了很多拦截器,其中defaultStack中的拦截器会在每个Action之前执行。

    3. 已经知道的拦截器

    1). params
    2). converterError
    3). validation
    4). workflow

    =====================

    3. 自定义拦截器

    1). 写一个拦截器类
    * 实现Interceptor接口(基本不用)
    > void init() --> 当拦截器对象创建之后,马上调用,完成初始化工作。
    > void destroy() --> 当拦截器对象被销毁之前,会被调用。
    > String intercept(ActionInvocation) --> 每次拦截器时。返回值为结果名称,与execute()相同。
    * 继承AbstractInterceptor类(比较常用)
    * 继承MethodFilterInterceptor类(特殊情况下使用)
    2). 配置它
    > 定义拦截器
    > 在action中引用拦截器

    ----------

    自定义:

    1. 写My1Intercetpor,继承AbstractInterceptor

    重写intercetpor方法
    其中放行:invocation.invoke()

    2. 配置
    1). 定义拦截器:
    <interceptors>
    <intercptor name="xxx" class="..."/>
    </ ...>
    2). 在<action>引用拦截器
    <action>
    <interceptor-ref name="xxx"/>
    </action>


    如果你在<acton>中指定了拦截器,那么默认拦截器就不会再执行!!!
    第一种方法:
    <action>
    <interceptor-ref name="defaultStack" />
    <interceptor-ref name="my1" />
    </action>

    第二种方法:
    <interceptor-stack name="myStack">
    <interceptor-ref name="my1" />
    <interceptor-ref name="defaultStack" />
    </interceptor-stack>
    ...
    <action>
    <interceptor-ref name="myStack"/>
    </action>

    第三种方式:
    指定当前<package>的默认拦截器栈为myStack
    <default-interceptor-ref name="myStack" />

  • 相关阅读:
    Composite in Javascript
    Model Validation in Asp.net MVC
    HttpRuntime.Cache vs. HttpContext.Current.Cache
    Controller Extensibility in ASP.NET MVC
    The Decorator Pattern in Javascript
    The Flyweight Pattern in Javascript
    Model Binding in ASP.NET MVC
    Asp.net MVC
    jQuery Ajax 实例 全解析
    ASP.NET AJAX入门系列
  • 原文地址:https://www.cnblogs.com/xyhero/p/9348763.html
Copyright © 2011-2022 走看看