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

  • 相关阅读:
    并发编程3
    并发编程2
    4/23
    4/22
    并发编程1
    粘包问题
    Navicat12激活
    IDEA创建maven项目报错解决:Failed to create a Maven project: 'C:/Users/../IdeaProjects/../pom.xml' already e
    IDEA
    windows下查看端口运行情况--解决端口冲突问题
  • 原文地址:https://www.cnblogs.com/1612ss/p/8472938.html
Copyright © 2011-2022 走看看