• struts2之OGNL


    limit ?,?    2      paged第几页,pageSize每页显示的页数
    
      0,2   1,2
    
      2,2   3,4
    
    (page-1)*pageSize
    
    (1-1)*2

    1.OGNL

    是一组功能强大的表达式语言,类似EL

    (回顾:el表达式只要是JavaEE5以上,不需要引用任何jar包)

    访问bean对象属性:

    基本类型属性:      “属性名”                          (用的最多)

    数组、集合类型:   “属性名[下标]”

    map类型:             “属性名.key”或者“属性名[‘key’]”

    引用类型:             “引用属性.属性名”           (用的最多)

    常规运算

    算术运算              “age+10”  和的运算               “name+10”  字符串拼接

    关系运算              “age>10”

    逻辑运算               “true&&false”          

    调用方法:

    普通方法: “list.size()”         "name.toUpperCase()"

    静态方法:  “@完整类名@方法名(参数)”                 "@java.util.Arrays@toString(arrs)"

    创建对象:

    集合对象:               “{元素1,元素2...}”

    Map对象:                  “#{key:value,key:value...}”

    2.ValueStack:值栈

    分为3个部分:ognl引擎,栈区,map区

    存数据:

      拦截器可以拦截Action请求,其中有一个拦截器可以拦截表单中的数据,请求到达Action之前,拦截器将表单中的数据存放到了VS值栈中,ognl引擎根据拦截到的数据,从栈顶依次往下查找相同名字的属性,如果,找到,给其赋值。

    取数据:ognl引擎根据表达式(ognl/el)从栈区的栈顶依次查找相同名字的属性,如果找到,返回其值。

     3.为什么el表达式可以获得VS值栈中的数据?

    在struts2中,重构了request.getAttribute()方法,重构之后,依然是从request对象中查找数据,如果没有找到,则从VS中查找

    顺序:pageText-》request-》VS-》session-》application

    4.struts2的六大核心组件

    a.FC:前端控制器

      负责请求分发,交给业务控制器

    b.Action业务控制器

      负责处理某一类具体业务、

    c.VS:值栈

      Action与jsp数据交互的媒介

    d.Interceptor:拦截器

      负责扩展Action

    e.Result:

      输出组件

    f.Tags:

      标签

    5.执行流程

    a.请求到达之后,先进过FC

    b.FC根据struts.xml文件的配置信息,确定调用哪一个Action

    c.创建VS值栈对象

    d.创建Action对象,并且将Action对象存放到栈顶

    e.调用Action的execute方法,根据输入属性计算输出属性

    f.在调用execute之前或之后会调用一系列拦截器

    g.根据execute方法返回的字符串,确定调用哪一个Result。

    h.Result组件根据指定的类型将数据输出

      通常是转发到一个jsp页面,在页面中使用Tags标签展示数据

  • 相关阅读:
    【转】有关Managed code和Native code的区别
    【转】wince6.0 vs2005 编译选项详解
    【转】Wince Device Emulator使用介绍Device Emulator 2.0
    Dapper基础增删查改、事务和存储过程
    SharpCompress的压缩文件解压和文件夹压缩
    MVC WebAPI 的基本使用
    prepare for travel 旅行准备
    gossip
    JS笔记(3) 词汇结构(待续。。。)
    Good Points Bad Points
  • 原文地址:https://www.cnblogs.com/yingyigongzi/p/9203110.html
Copyright © 2020-2023  润新知