特点  常用来访问值栈里对象属性的一种语言

    通常由struts标签来解析执行  <%@ taglib prefix="s" uri="/struts-tags"%>

值栈  特点  ValueStack

        栈的特点:后入先出

    内容  对象栈  存放action的实例及相关对象

        Map栈  存放封装web资源的Map对象  application,session,request,parameter

                            attr  通用属性,按照request,session,application的顺序查找属性值

             实际上是ActionCont的引用

    API  通过 ActionContext 对象的 getValueStack() 获取值栈对象

      方法  push(Object)  把对象压入对象栈的顶部

          pop()  移除对象栈的顶部对象(类似删除)  

          peek()  得到对象栈顶部的对象(类似get)  

访问方式

  struts标签  <s:property value=""/>  只输出<s:property/>会输出栈顶的对象

         访问对象栈  <s:property value="属性名"/>  按先后顺序匹配属性名,只输出找到的第一个

                可定义起始位置  value="[索引]['属性名']"  (索引值从0开始)

                        value="[索引].属性名"

         访问Map栈  <s:property value="#作用域.key"/>  如果作用域=attr,按照request,session,application的顺序查找属性值

         访问对象的方法  value=“[起始索引].方法名(参数列表)”  实例方法

         访问类的静态方法和属性  value=“@全类名@方法名(参数列表)”  

                      value=“@全类名@静态属性名(参数列表)”  静态方法和属性,默认不允许访问,要在struts里打开

                      打开的语句<constant name="struts.ogrl.allowStaticMethodAccess" value="true"></constant> 

         访问对象的集合属性  输出集合内容  value=“[起始索引].集合属性名”

                    访问集合单元  数组和List  value=“[起始索引].集合属性名[索引]”

                            Map  value=“[起始索引].集合属性名[‘key’]”

                    获取集合长度  数组  value=“[起始索引].集合属性名.lenght”

                            List和Map  value=“[起始索引].集合属性名.size”

                    判断内容是否为空  value=“[起始索引].集合属性名.isEmpty”

  使用EL  访问对象栈  ${属性名}  按先后顺序匹配属性名,只输出找到的第一个,不能定义查找的起始位置

        访问Map栈  ${作用域.属性名}  

struts-OGNL的更多相关文章

  1. struts OGNL详解

    首先了解下OGNL的概念: OGNL是Object-Graph Navigation Language的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的 ...

  2. struts OGNL数据标签

    OGNL对象图导航语言,类似于el表达式,strut的底层就是用这个写的在导入struts-core的时候会导入ognl.jar public class Test { public static v ...

  3. Struts ognl表达式语言几个符号

    #  获取非根元素值  . 动态都建map集合 $  配置文件取值 %  提供一个ognl表达式运行环境 <%@ page language="java" import=&q ...

  4. Struts 2 OGNL

    1.什么是OGNL? 2.Struts 2 OGNL 表达式      ======================  华丽丽的分割线  ======================  1.什么是OG ...

  5. Struts(五)之OGNL、contextMap

    一.OGNL 1.1.定义 OGNL是Object-Graph Navigation Language的缩写,它是一个单独的开源项目. Struts2框架使用OGNL作为默认的表达式语言.它是一种功能 ...

  6. Struts(十一):OGNL表达式(二)

    Map栈 :request,session,application的一个属性值或一个请求参数的值. 若想访问ContextMap里的某个对象的属性,可以使用以下几种之一: #object.proper ...

  7. java框架篇---struts之OGNL详解

    OGNL(Object Graph Navigation Language),是一种表达式语言.使用这种表达式语言,你可以通过某种表达式语法,存取Java对象树中的任意属性.调用Java对象树的方法. ...

  8. Struts(21)OGNL具体解释

    Struts2 中内置了OGNL表达式的支持,使得Struts2的具有比Struts1更为强大的数据訪问的功能.本文主要解说OGNL的用法.并不会去解说一些原理性的东西.想要了解的朋友能够自己去查阅相 ...

  9. Struts2入门(五)——OGNL和标签库

    一.前言 OGNL和标签库的作用,粗暴一点说,就是减少在JSP页面中出现java代码,利于维护. 1.1.OGNL 1.1.1.什么是OGNL? OGNL(Object-Graph Navigatio ...

  10. 4. ValueStack 和 OGNL

    1. 属性哪来的 当我们通过Action处理完用户请求以后,可以直接在页面中获取到 action 的属性值. 如果我们在页面中尝试遍历四个域中的属性,会发现域中并没有username之类的Action ...

随机推荐

  1. 用 TWebBrowser 查找网页上的按钮,编辑框,

    Form1.wb1.Navigate(Aurl); <table> <tr> <td style="text-align:right;">< ...

  2. 我觉得好用的VS扩展(不定期更新)

    首先向这些扩展的创作者致敬 这里都是2013版的  有些在给出的连接里有该扩展支持的其他版本连接 当然你也可以通过 VS->工具->扩展和更新->在线->搜索扩展名 来找到它们 ...

  3. 2014亚马逊在线笔试题目及解决方案(MMChess问题)

    整体思路:关键是需要知道当前Steps数组中的全排列即可,而且需要不重复的全排列.即关键在于非递归的全排列实现即可~ 其实直接利用STL中的next_permutation算法的,这里我又自己实现了一 ...

  4. ZeroMQ接口函数之 :zmq_msg_close – 释放一个ZMQ消息

    ZeroMQ 官方地址 :http://api.zeromq.org/4-2:zmq_msg_close zmq_msg_close(3)            ØMQ Manual - ØMQ/3. ...

  5. ZeroMQ接口函数之 :zmq_strerror - 获取ZMQ错误描述字符串

    ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_strerror zmq_strerror(3) ØMQ Manual - ØMQ/4.1.0 Name zmq_ ...

  6. Ubuntu14.10安装Eclipse

    方法一:(缺点是安装时附加openjdk等大量程序并无法去除,优点是安装简单) $ sudo apt-get install eclipse 方法二:(优点是安装内容清爽,缺点是配置麻烦) 1、安装J ...

  7. MySQL Cluster搭建与测试

    MySQL Cluster是一个基于NDB Cluster存储引擎的完整的分布式数据库系统.不仅仅具有高可用性,而且可以自动切分数据,冗余数据等高级功能.和Oracle Real Cluster Ap ...

  8. IOS网络第五天 AFN-01发送get和post请求

    ************AFN01-基本使用 #import "HMViewController.h" #import "AFNetworking.h" @in ...

  9. Intellij IDEA如何使用Maven Tomcat Plugin运行web项目(转)

    首先,Run --> Edit Configurations,这时候如下图: 然后点击左上角的加号,可以添加一个新的配置,如下图: 选择Maven,如下图: 下面填上自己的配置信息,点击appl ...

  10. requirejs使用

    实现模块化.按需加载. 一.配置参数. 1.baseUrl:以一个相对于baseUrl的地址来加载所有的代码.   data-main,使用它来启动脚本加载过程,而baseUrl一般设置到与该属性相一 ...