struts2笔记11-OGNL
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的更多相关文章
- Struts2学习笔记四 OGNL
OGNL,全称为Object-Graph Navigation Language(对象图表达语言),它是一个功能强大的表达式语言,用来获取和设置Java对象的属性,调用java对象的方法,同时能够自动 ...
- Struts2笔记3--获取ServletAPI和OGNL与值栈
获取ServletAPI: 第一种方式: //在request域中放入属性req,暂且认为getContext()获取的是request域空间,但实际不是 ActionContext.getConte ...
- Struts2中使用OGNL
链接:Struts标签库 OGNL(Object Graphic Navigatino Language) OGNL称为对象图导航语言.以一个对象为根(起点),通过OGNL可以访问与这个对象关联的其它 ...
- 机器学习实战 - 读书笔记(11) - 使用Apriori算法进行关联分析
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第11章 - 使用Apriori算法进行关联分析. 基本概念 关联分析(associat ...
- Struts2笔记——ONGL表达式语言
OGNL是ObjectGraphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts 2框架使用OGNL作为默认的表达式语言. ----------- ...
- Ext.Net学习笔记11:Ext.Net GridPanel的用法
Ext.Net学习笔记11:Ext.Net GridPanel的用法 GridPanel是用来显示数据的表格,与ASP.NET中的GridView类似. GridPanel用法 直接看代码: < ...
- 浅析Struts2中的OGNL和ValueStack
要了解Struts2与OGNL表达式的关系,我们必须先搞清楚以下三个概念: 1. ActionContext它是Action运行的上下文环境,Action的多项设置都存放在次,我们每一次Action ...
- Struts2笔记_值栈
A.值栈概述 值栈(ValueStack),通俗的来说就是Struts2里面用来管理和存储数据的东西.struts2项目部署运行后,底层会创建一个action实例,同时也会在内存上划分一块区域,这个区 ...
- SQL反模式学习笔记11 限定列的有效值
目标:限定列的有效值,将一列的有效字段值约束在一个固定的集合中.类似于数据字典. 反模式:在列定义上指定可选值 1. 对某一列定义一个检查约束项,这个约束不允许往列中插入或者更新任何会导致约束失败的值 ...
- JAVA自学笔记11
JAVA自学笔记11 1:Eclipse的安装 2:用Eclipse写一个HelloWorld案例,最终在控制台输出你的名字 A:创建项目 B:在src目录下创建包.cn.itcast C:在cn.i ...
随机推荐
- #ifndef #define #endif 防止头文件被重复引用
想必很多人都看过“头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用”.但是是否能理解“被重复引用”是什么意思?是不能在不同的两个文件中使用include来包含这个头文件 ...
- C语言-数据的快速引用
1.常量:程序运行中,不会改变 整形常量 实形常量 字符常量:使用单引号引起的单个字符或者转移字符 ‘a’ 字符串常量:使用双引号引起的单个或者多个字符序列 "ab",存储的时候, ...
- javabean对象自动赋值给另一个javabean对象
方法1:把JavaBean的from的值自动set给to,省略了自己从from中get然后再set给to import java.beans.BeanInfo;import java.beans.In ...
- 高性能WEB开发 为什么要减少请求数,如何减少请求数!
http请求头的数据量 [声明] 转载 原文出处:http://www.blogjava.net/BearRui/. 谢谢我们先分析下请求头,看看每次请求都带了那些额外的数据.下面是监控的googl ...
- NFC扫描
目录(?)[-] 简介 什么是NFC 标签和读取器 标签 读取器 NFC模式 通信模式 主动模式 被动模式 操作模式 读写 点对点 模拟卡片 NFC用例 用于启动服务 用于分享 用于连接设备 用于买票 ...
- VMware双网卡实现虚拟机连开发板和Internet
前面已经介绍过关于VMware产生的虚拟交换机和虚拟网卡,当宿主机拥有两个网卡时,可以让虚拟系统同时实现上网和连接开发板的功能. 首先,在设置中虚拟出两块虚拟机网卡,一块连接VMnet0交换机一块连接 ...
- Easyui几种布局方式的使用
1.通过标记创建layout. 记得添加"easyui-layout"样式给div标记. <div id="cc" class="easyui ...
- linux之SQL语句简明教程---IN
在 SQL 中,在两个情况下会用到 IN 这个指令:这一页将介绍其中之一 -- 与 WHERE 有关的那一个情况.在这个用法下,我们事先已知道至少一个我们需要的值,而我们将这些知道的值都放入IN 这个 ...
- phpadmin
一晚上都在调试数据库,都要疯了,整理如下: 0.Apache服务器的443端口与VMware的冲突,所以要更改配置文件.设为440就可以(这个随意). 1.因为要远程访问,默认密码为空,所以首先给ro ...
- 关于” fatal error C1010: unexpected end of file while looking forprecompiled header directive”问题
其中文意思是:致命错误C1010:意想不到的文件结束而寻找预编译头文件的指令错误执行cl exe. 经过多次的查找,终于解决这问题 方法一: 在头文件中加“#include "stdafx. ...