Struts2中OGNL
什么是OGNL
OGNL:Object Graph Navigation Language 对象导航图语言
开源项目,取代页面中Java脚本,简化数据访问
和EL同属于表达式语言,但功能更为强大
让我们通过简单一致的表达式语法来读取和设置Java对象的属性值,调用对象的方法,遍历整个对象的结构图,实现字段类型转换等功能。
OGNL融入框架流程

Ognl表达式
- 访问OGNL上下文和action上下文,#相当于ActionContext.getContext();
- 如果访问的是map中的值而不是对象栈中的值,由于map中的数据不是根对象,所以在访问时需要添加#前缀。

|
名称 |
作用 |
例子 |
|
parameters |
包含当前HTTP请求的Map |
#parameters.id[0]=request.getParameter(“id”) |
|
request |
包含当前HttpServletRequest属性的Map |
#request.username=request.getAttribute(“username”); |
|
session |
包含当前HttpSession属性的Map |
#session.username=session.getAttribute(“username”); |
|
application |
包含当前ServletContext属性的Map |
#application.username=application.getAttribute(“username”); |
|
attr |
用于按照request>session>application顺序访问其属性 |
#attr.username相当于按照顺序在以上三个范围内读取username的属性,直到找到为止。 |
值栈与OGNL
值栈(ValueStack)
由Struts 2框架创建的存储区域,具有栈的特点Action的实例会被存放到值栈中
OGNL访问值栈按照从上到下的顺序,靠近栈顶的同名属性会被读取

Struts2中OGNL的更多相关文章
- Struts2中OGNL表达式的用法
今天分享的是Struts2框架中的一种ognl表达式语言,主要分两个目标去学习 1.理解struts2传值的优先级 2.ognl与el的区别 一:ognl表达式语言简介 OGNL的全称是O ...
- 在Struts2中ognl.MethodFailedExceptiond异常的解决办法
问题描述: 在 Struts2 里面,当页面向服务器提交参数时报ognl.MethodFailedException:和java.lang.NoSuchMethodException:异常 异常信息 ...
- struts2中ognl标签具体解释
<body> <s:set name="age" value="61" /> <!-- if elseif else 參数test ...
- Struts2中的OGNL表达式
一.OGNL表达式简介 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目.所谓对象图,即以任意一个对象为根,通过OGNL可以访问 ...
- struts2中各种值栈问题
struts2中OGNL和 ValueStack(一) 收藏 学习的时候,总分不清楚在struts2中页面的传值和取值是怎么来完成的,所以从网上搜了很多资料,现在把这些资料总结写,留着以后参考..看完 ...
- Struts2中的ActionContext、OGNL及EL的使用
文章分类:Java编程 本文基于struts2.1.8.1,xwork2.1.6 1.EL EL(Expression Language)源于jsp页面标签jstl,后来被jsp2.0 ...
- struts2中根对象以及ognl .
Struts2中的OGNL表达式语言是对Xwork的OGNL的封装.我们要理解一下几点: 1. Struts2中将ActionContext作为OGNL的上下文环境(ActionContext内部含有 ...
- struts2 与 OGNL 表达式,jsp中 利用ognl 在valuestack中取值
在Struts2中,一个请求在终于到达Action的方法之前,Action对象本身会被压入ValueStack(实际上就是放到ValueStack的CompoundRoot中),所以Action对象是 ...
- 浅析Struts2中的OGNL和ValueStack
要了解Struts2与OGNL表达式的关系,我们必须先搞清楚以下三个概念: 1. ActionContext它是Action运行的上下文环境,Action的多项设置都存放在次,我们每一次Action ...
随机推荐
- 解决每次升级Xcode后三方插件失效问题
其实就是插件里面的UIID没有加新XcodedeUIID 拿常用的Alactraz来说 在Terminal中 un these 2 lines in terminal:1:find ~/Library ...
- python中如何使用help命令?
python下 help()使用方法 查看python所有的modules:help("modules") 单看python所有的modules中包含指定字符串的modules ...
- SGU 222.Little Rooks
题意: 求在n*n(n<10)的棋盘上放k个车(水平竖直行走)的方案数. Solution SGU220的简化版.直接DP 显然当k>n时,ans=0; f[i][j]代表在前n行放了j个 ...
- 如何学习YII
我是在Yii的官方wiki上看到这篇文章的.读的第一遍觉得很不错,还有一种想翻译出来的冲动.虽然,本人英文很烂,但是毕竟写了这样多年的代码,估计大概的意思是能有的吧.英文原文:http://www.y ...
- 自定义复选框 checkbox 样式
默认的复选框样式一般在项目中都很少用 ,看起来也丑丑的.这里提供一个优化样式后的复选框.原理就是隐藏掉默认样式,在用设计好的样式替代 html结构 <div> <input type ...
- Ajax基础--JavaScript实现
ajax原理 1.ajax 即“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),也就是无刷新数据读取. 通俗地讲就是:AJAX 通过在后台与 ...
- 颤抖吧,Css3
相关文章地址:http://sc.chinaz.com/info/140315283609.htm http://files.cnblogs.com/xinlinux/csshake.min.css ...
- PHP 开启 ssh2
首先,为PHP安装SSH2扩展需要两个软件包, libssh2和ssh2(php pecl拓展). 两者的最新版本分别为libssh2-1.5.0.tar.gz和ssh2-0.12.tgz,下载地址分 ...
- Day14 html简介
初识html <!DOCTYPE html> <html lang="en"> <head> <!--自闭合标签--> <me ...
- IIS10 设置支持wcf服务(.svc)
感谢: http://www.cnblogs.com/dudu/p/3328066.html 如果提示web.config配置重复的话,很有可能是.net framework版本的问题,把IIS中的版 ...