zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    .Net Intelligencia.UrlRewriter 重定向参数中文支持配置方法
    Debian 9 vsftpd: version 3.0.3 配置
    Debian 静态网络配置
    iptables常用配置
    Debian防御DDOS(简易版本)
    Debian9+PHP7+MySQL+Apache2配置Thinkphp运行环境LAMP
    Discuz3.3注册程序修改添加记录推荐人账号
    .NetCore WPF 指定一个相对路径的图片,报错“找不到资源”
    C语言的unsigned做双目运算符的奇怪问题
    关于人脸识别的视频图片处理
  • 原文地址:https://www.cnblogs.com/1612ss/p/8472938.html
Copyright © 2011-2022 走看看