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

转载于:https://www.cnblogs.com/1612ss/p/8472938.html

Struts2 (三)OGLN相关推荐

  1. Struts2三种传参方式(从jsp页面传到Action)

    多的不说,直接上代码;struts.xml代码:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYP ...

  2. 关于Struts2三种访问Servlet API方式的总结

    在开发j2ee过程中,通常我们需要访问的Servlet API是:HttpSession,HttpservletRequest,ServletContext,这三者分别对应于JSP的内置对象:sess ...

  3. struts2(三) 输入校验和拦截器

    前面知道了struts2的架构图和struts2的自动封装表单参数和数据类型自动转换,今天来学struts2的第三第四个东西,输入校验和拦截器, --WH 一.输入校验 在以前我们写一个登录页面时,并 ...

  4. SpringMVC学习——对于SpringMVC的整体认识

    文章目录 一.首先什么是SpringMVC? 二.同类的技术有哪些? 三.对比同类的优缺点是哪些? 四.SpringMVC的组成部分? 五.SpringMVC项目的架构图 一.首先什么是SpringM ...

  5. ApacheCN JavaWeb 译文集 20211017 更新

    使用 Spring5 构建 REST Web 服务 零.前言 一.一些基本知识 二.在 Spring5 中使用 Maven 构建 RESTfulWeb 服务 三.Spring 中的 Flux 和 Mo ...

  6. JavaWeb框架-SSH-整合流程!

    话说 前面几篇博客陆续总结了Hibernate.Struts2.Spring,无疑Spring是其中最耀眼的明星.SSH框架虽然已不再是主流,但是他们曾经辉煌过.我们不能忘记历史,对否? 目标:整合S ...

  7. java struts2值栈ognl_Struts2 (三) — OGNL与值栈

    一.OGNL表达式 1.概述 1.1什么是OGNL ​ OGNL是Object-Graph Navigation Language的缩写,俗称对象图导航语言. 它是一种功能强大的表达式语言,通过它简单 ...

  8. Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法...

    Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法 www.MyException.Cn   发布于:2012-09-15 ...

  9. struts2 ognl 判断数据类型_新华三攻防系列之防护篇从防护角度看Struts2历史漏洞...

    前言 Struts2漏洞是一个经典的漏洞系列,根源在于Struts2引入了OGNL表达式使得框架具有灵活的动态性.随着整体框架的补丁完善,现在想挖掘新的Struts2漏洞会比以前困难很多,从实际了解的 ...

最新文章

  1. Forefront_TMG_2010-TMG发布Web服务器
  2. 剑指offer--求1+1+3+....n的和
  3. 程序员如何用糖果实现盈利 - [别人家的程序员01]
  4. [易学易懂系列|golang语言|零基础|快速入门|(一)]
  5. beginnersbook C++ 教程·翻译完成 | ApacheCN
  6. 我的Android第五章:通过Intent实现活动与活动之间的交互
  7. 模拟电子技术基础 --1. 常用半导体器件
  8. 静态多层Map缓存清除
  9. 编程之美4.7蚂蚁爬杆扩展问题附猎人抓狐狸(必胜策略)
  10. MySQL基本架构示意图
  11. 【java】getResourceAsStream(“.properties“)配置文件无法读入问题
  12. 七、Fiddler工具 — Statistics(统计)面板
  13. itchat给指定联系人发消息
  14. 线程实用解析--------(六)Control.Invoke()和Control.BeginInvoke()
  15. 微信辅助验证 信息填写正确 却提示绑卡信息错误的解决办法
  16. 空调变频和定频的区别?
  17. Mac OS X的Spotlight综述
  18. Nervos 双周报第 9 期:CKB Testnet 要上线?
  19. 中国菜刀上传一句话木马,巴西烤肉提权
  20. TWaver可视化软件(四)电力可视化 上

热门文章

  1. 2017/05/07 java 基础 随笔
  2. 20145226《信息安全系统设计基础》第1周学习总结
  3. 懒加载中进行字典转模型
  4. POJ 2010 Moo University - Financial Aid(堆维护滑窗kth,二分)
  5. 二叉树的建立和遍历的各种问题
  6. 作业 20181016-10 每周例行报告
  7. CSS3学习笔记-字体和文字
  8. jQuery单选按钮监听事件
  9. centos6.x安装mysql5.6及启动多实例
  10. 统计输入的汉字,数字,英文,other数量