Struts2中的OGNL表达式语言是对Xwork的OGNL的封装。我们要理解一下几点: 
1. Struts2中将ActionContext作为OGNL的上下文环境(ActionContext内部含有一个Map对象) 
2. Struts2中的OGNL表达式语言的根对象是一个ValueStack,ValueStack中的每一个对象都被视为根对象。 
Struts2框架将实例化的Action对象放入ValueStack中,如果是Action链,则多个Action都存在于ValueStack中。而ValueStack中除了Action外,Struts2框架还将parameters,request,response,session,application,attr等对象放到ActionContext中,访问这些对象需要加前缀#。

总结:Struts2中的数据处理基于Xwork的OGNL,它在OGNL的基础上进行了一定的封装。OGNL的核心概念是根对象(root)和上下文环境(context)---你可以传入一个Map对象作为上下文,向其中put进一个对象,那么这个对象可以作为根对象(ognl中可以向函数中传入不同的Map对象作为根对象来操作,也可以指定不同的根对象,而Struts2中,它固定了根对象ValueStack)。在Struts2中,ActionContext作为OGNL的上下文环境,它的根对象是一个ValueStack,ValueStack中的每个对象都被视为根对象。Struts2中的Action作为根对象存在(如果多个Action以chain的形式存在,则多个Action均存在于ValueStack中,均为根对象)。

最新文章

  1. DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践(3)
  2. 李洪强iOS经典面试题155 - const,static,extern详解(面试必备)
  3. (八)WebGIS中栅格图层的设计
  4. AngularJS时间轴指令
  5. 分享个win平台cocos2d-x创建项目的快捷方式
  6. nfs服务部署记录
  7. AOP 学习笔记
  8. Spring aop的实现原理
  9. bzoj3304 [Shoi2005]带限制的最长公共子序列
  10. Struts1与Struts2的异同
  11. Yii中用递归方法实现无限级分类
  12. 伪元素first-letter(首字母变大)
  13. C# Assembly类_反射
  14. oracle中sys和System的默认密码
  15. IOS任务管理之NSThread使用
  16. c++学习笔记---06--- 函数的重载
  17. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](三)
  18. Jmeter+badboy压力测试总结
  19. ReentrantLock 实现
  20. 学以致用三十六-----弄懂python装饰器

热门文章

  1. STM32F412应用开发笔记之六:使用片上Flash存储参数
  2. WEB 用户指南 -- WEB 系统结构文档
  3. oracle打补丁
  4. embed chrome 无法播放问题
  5. Selenium Remote-Control架构
  6. 浅入tomcat
  7. C#通过第三方组件生成二维码(QR Code)和条形码(Bar Code)
  8. Swif - 可选型
  9. font-family字体总结
  10. JS—事件对象