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 ...
随机推荐
- UISearchBar 光标不出现的问题
app支持ios7,在UINavBar 里面加入搜索框,结果光标一直出现不了. 解决办法如下: searchBar.tintColor = [UIColor blueColor];
- C++前置++与后置++的区别与重载
++属于单目运算符,前置与后置的实现代码不一样,下面以整数自增为例: // 前置++,返回自增后的值,且返回的是一个左值 int& operator++(){ *this += 1; retu ...
- qsort 函数用法
用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *)); 各参数: 1 待排 ...
- SGU 171.Sarov zones
简单的贪心.优先weight最大的,优先匹配Q值大的地区 code #include <iostream> #include <algorithm> #include < ...
- SGU 224.Little Queens
时间限制:0.75s 空间限制:6M 题意 n*n(n<=10)的棋盘,求出放置m(m<=n*n)个皇后的方案数. Solution: 状态压缩+位运算 搜索. 首先我们从上往下逐行放置 ...
- 关于css float 属性以及position:absolute 的区别。
1.float 属性定义元素在哪个方向浮动.以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动.浮动元素会生成一个块级框,而不论它本身是何种元素.div一个典型的块 ...
- SQL服务器名称的更改
SQL服务器名称的更改 1.使用select @@ServerName可以看到当前数据库的服务器名称 2.从Sys.SysServers表中可以看到当前的所有服务器名称 3.使用 sp_drops ...
- html5本地数据库(一)
本地数据库 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important ...
- meta标签常用属性整理
在segmentfault看到这篇文章,觉得整理的很详细,所以转载过来和大家分享一下. 原文地址:http://segmentfault.com/blog/ciaocc/119000000240791 ...
- PHP http(file_get_content) GET与POST请求方式
1.GET方式请求 <?php $data = array('sParam1'=>'test1','sParam2'=>101,'isAuto'=>1); //定义参数 $da ...