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

  • 相关阅读:
    [转] Web前端优化之 Server篇
    [转] Web前端优化之 内容篇
    [学习笔记] Web设计过程中该做和不该做的
    web前端性能优化
    jQuery代码片段
    socket.io
    ajax阻塞UI线程
    前端面试题整理
    nodejs之async异步编程
    jquery源码笔记
  • 原文地址:https://www.cnblogs.com/1612ss/p/8472938.html
Copyright © 2011-2022 走看看