• struts2--拦截器


    1、拦截器:拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。

      --Params拦截器:Parameters拦截器将把表单字段映射到ValueStack栈的栈顶对象的各个属性中。如果某个字段在模型里没有匹配的属性,Param拦截器将尝试ValueStack栈中的下一个对象;

      --ModelDriven拦截器:如果Action类实现了ModelDriven接口,则拦截器将把ModelDriven接口的getModel()方法返回的对象置于栈顶;

    2、使用paramsPrepareParamsStack 拦截器栈:

      --struts.xml中写入:

        <default-interceptor-ref name=”paramsPrepareParamsStack”></default-interceptor-ref>

      --使用该拦截器栈:params -> modelDriven -> params

      --相比于defaultStack, paramsPrepareParamsStack能够先将参数赋给ValueStack栈顶对象;

    3、Preparable拦截器:负责为getModel() 准备model;

    4、自定义拦截器:

      --实现Interceptor接口;

      --AbstractInterceptor类实现了Interceptor接口,因此自定义的拦截器可以继承该类,它提供了空白的init方法和destroy方法的实现;

    public class MyInterceptor extends AbstractInterceptor {
        private static final long serialVersionUID = 1L;
    
        @Override
        public String intercept(ActionInvocation invocation) throws Exception{
            System.out.println("before");
            String result = invocation.invoke();
            System.out.println("after");
            return result;
        }
    }
  • 相关阅读:
    Again Prime? No Time.(uva10870+数论)
    Heaps(Contest2080
    Terminator快捷键
    Chrome快捷键
    STL函数static void (* set_malloc_handler(void (*f)()))()与函数指针解析
    C++中的new,operator new与placement new
    Qt5 中对 C++11 一些新特性的封装
    BFS提高效率的一点建议
    《C++ Primer》读书笔记 第三章
    《C++ Primer》读书笔记 第二章
  • 原文地址:https://www.cnblogs.com/tengtao93/p/5142133.html
Copyright © 2020-2023  润新知