• Struts2 (三)OGLN


    01.OGNL 的历史

    OGNL 最初是为了能够使用对象的属性名来建立 UI 组件 (component) 和 控制器 (controllers) 之间的联系,简单来说就是:视图 与 控制器 之间数据的联系。后来为了应付更加复杂的数据关系,Drew Davidson 发明了一个被他称为 KVCL(Key-Value Coding Language) 的语言。 Luke 参与进来后,用 ANTLR 来实现了该语言,并给它取了这个新名字,他后来又使用 JavaCC 重新实现了该语言。目前 OGNL 由 Drew 来负责维护。目前很多项目中都用到了 OGNL,其中不乏为大家所熟知的,例如几个流行的 web 应用框架:WebWork,Tapestry 等。

    02.什么是OGNL

    OGNL:Object Graph Navigation Language  对象导航图语言

    开源项目,取代页面中Java脚本,简化数据访问

    和EL同属于表达式语言,但功能更为强大

    让我们通过简单一致的表达式语法来读取和设置Java对象的属性值,调用对象的方法,遍历整个对象的结构图,实现字段类型转换等功能。

    03.OGNL在Struts 2中的作用

    表达式语言

    将表单或Struts 2标签与特定的Java数据绑定起来,用来将数据移入、移出框架

    类型转换

    数据进入和流出框架,在页面数据的字符串类型和Java数据类型之间进行转换

     

    03.值栈与OGNL

    值栈(ValueStack)

    Struts 2框架创建的存储区域,具有栈的特点

    Action的实例会被存放到值栈中

    OGNL访问值栈

    按照从上到下的顺序,靠近栈顶的同名属性会被读取

    04.为什么进行类型转换

    在基于HTTP协议的Web应用中

    客户端请求的所有内容都以文本编码方式传输到服务器端,服务器端的编程语言却有着丰富的数据类型

    Servlet中,类型转换工作由开发者自己完成

     

     action

     struts.xml

     jsp

  • 相关阅读:
    通信收发单元
    WOSA协议(转)
    CcTalk (网络协议)(转)
    0x和H都表示十六进制有什么区别吗?
    select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET(转)
    &是什么运算符(转)
    NDK的Paths and Symbols设定
    android JNI调用(转)
    scrapy-redis基础和介绍
    scrapy-redis介绍(一)
  • 原文地址:https://www.cnblogs.com/1612ss/p/8472938.html
Copyright © 2020-2023  润新知