Struts2,大爷你好!第三天

day03

6.struts2  拦截器
    是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts拦截器是可插拔的,
    拦截器是AOP(面向切面)的一种实现
优点:调用功能的封装,提供了可重用性;
xml文件配置拦截器:

<interceptors>
<interceptor name="myInterceptor" class="com.fdx.interceptor.MyInterceptor"></interceptor>
</interceptors>

<action>
    引用
    <interceptor-ref name="myInterceptor"></interceptor-ref>
    <interceptor-ref name="defaultStack"></interceptor-ref>
</action>


7.自定义拦截器--登录验证拦截器
    

8.第一节
--值栈简介:
    值栈是对应每个请求对象的一套内存数据的封装,Strust2会给每个请求创建一个新的值栈。
    值栈能够线程安全的为每个请求提供公共的数据存取服务。

第二节:OGNL引入
OGNL是对象图导航语言Object-Graph Navigation Language的缩写,他是一种功能强大的表达式语言。
OGNL访问ValueStack数据
<s:property value="account"/>

OGNL访问ActionContext数据
访问某个范围下的数据要用#
#parameters 请求参数 request.getParameters();
#request 请求作用域中的数据 request.getAttribute();
#session 会话作用域中的数据 session.getAttribute();
#application 应用程序作用域中的数据 application.getAttribute();
#attr 按照page request session application 顺序查找值

9.第三节:OGNL访问复杂对象
    --访问javabean对象
    --访问集合对象 ArrayList   <s:property value="student[i]".属性/>
    --访问Map对象   HashMap    <s:property value="student['key值']".属性/>

第四节:OGNL访问静态方法和属性
    --访问静态属性  publi static final String str="静态属性";
            --访问静态属性:<s:property value="@路径@str"/>    
    --访问静态方法    public static void printUrl(){
                System.out.println("静态方法");
            }
            --访问静态方法:<s:property value="@路径@printUrl()"/>    
            --需要配置xml文件:<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>

原文地址:https://www.cnblogs.com/fdxjava/p/10629333.html