1、OGNL

Object-Graph Navigation Language,对象-图 导航语言,可以方便的操作struts2值栈对象

2、对象栈操作方法

(1)action普通属性的访问方法

<s:property value="[n].pName"/>

从对象栈第n个对象开始查找pName属性的值;

<s:property value="[0].pName"/>,表示从栈顶对象开始查找,而从栈顶对象开始查找又可以省略索引;

<s:property value="pName"/>,通常这么写,表示从栈顶对象开始查找pName,直到找到为止,若找不到则为"";

(2)action中的对象属性的访问方法

  假设action实例中有给person对象,则

<s:property value="[n].person.personName"/>,表示从第n个栈中对象查找person.personName;

同样,<s:property value="[0].person.personName"/>,表示从栈顶对象开始查找;

省略掉[0],即为<s:property value="person.personName"/>

也可以写成<s:property value="person['personName']"/>

可以通过,<s:debug />标签进行查看

3、map栈访问方法

(1)session中属性的访问

<s:property value="#session.product.pName"/>,其中product是一个实体对象;

(2)request中属性的访问

<s:property value="#request.test.person.personName"/>,其中test对象中有一个person对象;

4、访问静态属性和静态方法

(1)静态属性访问

<s:property value="@java.lang.Math@PI" />

(2)静态方法访问

默认情况下静态方法不允许访问,需要设置一个常量值:

  <constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>

<s:property value="@java.lang.Math@cos(0)"/>

5、访问实例方法

<s:property value="[n].setpName('jerry')"/>,n表示从栈对象中第n个对象开始搜索setpName方法

比如<s:property value="[0].setpName('jerry')"/>表示从栈顶对象开始搜索,省略掉[0],即

<s:property value="setpName('jerry')"/>

6、数组的访问

 <%
String[] names=new String[]{"aa","bb","cc"};
request.setAttribute("names", names);
%>

<s:property value="#attr.names.length"/>

<s:property value="#request.names[2]"/>

7、Map的访问

<%
Map<String,String> map1=new HashMap<String,String>(); map1.put("AA", "a");
map1.put("BB", "b");
map1.put("CC", "c");
request.setAttribute("map1",map1);
%>

<s:property value="#request.map1.size"/>

<s:property value="#attr.map1['AA']"/>

struts2笔记11-OGNL的更多相关文章

  1. Struts2学习笔记四 OGNL

    OGNL,全称为Object-Graph Navigation Language(对象图表达语言),它是一个功能强大的表达式语言,用来获取和设置Java对象的属性,调用java对象的方法,同时能够自动 ...

  2. Struts2笔记3--获取ServletAPI和OGNL与值栈

    获取ServletAPI: 第一种方式: //在request域中放入属性req,暂且认为getContext()获取的是request域空间,但实际不是 ActionContext.getConte ...

  3. Struts2中使用OGNL

    链接:Struts标签库 OGNL(Object Graphic Navigatino Language) OGNL称为对象图导航语言.以一个对象为根(起点),通过OGNL可以访问与这个对象关联的其它 ...

  4. 机器学习实战 - 读书笔记(11) - 使用Apriori算法进行关联分析

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第11章 - 使用Apriori算法进行关联分析. 基本概念 关联分析(associat ...

  5. Struts2笔记——ONGL表达式语言

    OGNL是ObjectGraphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts 2框架使用OGNL作为默认的表达式语言. ----------- ...

  6. Ext.Net学习笔记11:Ext.Net GridPanel的用法

    Ext.Net学习笔记11:Ext.Net GridPanel的用法 GridPanel是用来显示数据的表格,与ASP.NET中的GridView类似. GridPanel用法 直接看代码: < ...

  7. 浅析Struts2中的OGNL和ValueStack

    要了解Struts2与OGNL表达式的关系,我们必须先搞清楚以下三个概念: 1.  ActionContext它是Action运行的上下文环境,Action的多项设置都存放在次,我们每一次Action ...

  8. Struts2笔记_值栈

    A.值栈概述 值栈(ValueStack),通俗的来说就是Struts2里面用来管理和存储数据的东西.struts2项目部署运行后,底层会创建一个action实例,同时也会在内存上划分一块区域,这个区 ...

  9. SQL反模式学习笔记11 限定列的有效值

    目标:限定列的有效值,将一列的有效字段值约束在一个固定的集合中.类似于数据字典. 反模式:在列定义上指定可选值 1. 对某一列定义一个检查约束项,这个约束不允许往列中插入或者更新任何会导致约束失败的值 ...

  10. JAVA自学笔记11

    JAVA自学笔记11 1:Eclipse的安装 2:用Eclipse写一个HelloWorld案例,最终在控制台输出你的名字 A:创建项目 B:在src目录下创建包.cn.itcast C:在cn.i ...

随机推荐

  1. HDU 5728 - PowMod

    HDU 5728 - PowMod 题意:    定义: k = ∑(i=1,m) φ(i∗n) mod 1000000007 给出: n,m,p ,且 n 无平方因子 求: ans= k^(k^(k ...

  2. USACO 1.4 ariprog 解题报告

    这是继虫洞之后又让我为难的一个 剪枝题目,无论如何,做的再快,也只能过6个点,最后三个点也TLE.后来参考了一下标答,大概思路是这样的. 朴素算法就不多说了,枚举a,b然后判断就行,网上说这样优化到位 ...

  3. python 基础篇(二)数据类型概述

    正式进入python的学习. 数据类型可以分为身份,类型,数据项三项联合组成. 身份: id() 类型:type() 数据类型:int,boolean,tuple,string,dict,list 1 ...

  4. queue 之团队队列(摘)

    有t个团队的人正在排一个长队.每次新来一个人时,如果他有队友在排队,那么这个新人会插队到最后一个队友的身后.如果没有任何一个队友排队,则他会排到长队的队尾. 输入每个团队中所有队员的编号,要求支持如下 ...

  5. 关于php输入$_post[‘’]报错的原因

    在php中输入$_post[‘’]值时页面报错,是因为变量未声明,所以页面出现提示Undefined index,是因为首先要用isset来判断是否存在这个变量. 如:isset($_POST['/* ...

  6. 在MFC下实现图像放大镜

    当我们想仔细观察某个细微的东西时,一般都会使用放大镜.而要看清显示在计算机屏幕上的图片或文字时通常也可以借助于Windows操作系统附带的放大程序来实现.但该程序只能以固定的放大倍数去进行观看,有时并 ...

  7. 关键路径(CriticalPath)算法

    #include <stdio.h> #include <stdlib.h> #include <malloc.h> #define MAXVEX 30 //最大顶 ...

  8. hdu 1599 find the mincost route_最小环

    #include <iostream> #include<cstdio> using namespace std; #define N 110 #define INF 0xff ...

  9. 【LeetCode练习题】Permutation Sequence

    Permutation Sequence The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and ...

  10. block的一点知识

    一个block的笔记: http://www.cnblogs.com/xinye/archive/2013/03/03/2941203.html http://segmentfault.com/q/1 ...